假設你已經安裝了所有的依賴關係(在Ubuntu上,這將是一堆東西,喜歡sudo apt-get install libdb4.8-dev
和其他各種-dev包,然後我這是怎麼建。Python的
tar zxvf Python-2.7.1.tgz
cd Python-2.7.1
# 64 bit self-contained build in /opt
export TARG=/opt/python272
export CC="gcc -m64"
export LDFLAGS='-Wl,-rpath,\$${ORIGIN}/../lib -Wl,-rpath-link,\$${ORIGIN}/../lib -Wl,--enable-new-dtags'
./configure --prefix=$TARG --with-dbmliborder=bdb:gdbm --enable-shared --enable-ipv6
make
make install
,使期間不建立唯一的模塊是:
_tkinter - I don't do GUI apps and would use wxWindows if I did
bsddb185 - horribly obsolete version of bdb
dl - deprecated in 2.6
imageop - deprecated in 2.6
sunaudiodev - obsolete interface to some SparcStation device I think
接下來我收集的已經不是任何.so文件在Python安裝目錄,將其複製過來:
# collect binary libraries ##REDO THIS IF YOU ADD ANY ADDITIONAL MODULES##
cd /opt/python272
find . -name '*.so' | sed 's/^/ldd -v /' >elffiles
echo "ldd -v bin/python" >>elffiles
chmod +x elffiles
./elffiles | sed 's/.*=> //;s/ .*//;/:$/d;s/^ *//' | sort -u | sed 's/.*/cp -L & lib/' >lddinfo
# mkdir lib
chmod +x lddinfo
./lddinfo
,然後添加setuptools的好措施
#set the path
export PATH=/opt/python272/bin:$PATH
#install setuptools
./setuptools-0.6c11-py2.7.egg
在這一點上我可以做的/ opt/python272的壓縮包並運行它在任何64位的Linux發行版,甚至是一個沒有安裝依賴關係的發行版,或者是一個具有舊版過時版本依賴關係的舊發行版。
我也得到了pip
安裝,但在這一點上我的筆記有一個缺口,由於一些失敗的virtualenv鬥爭。基本上,virtualenv不支持這種情況。大概我做easy_install pip
然後:
export LD_RUN_PATH=\$${ORIGIN}/../lib
pip install cython
pip install {a whole bunch of other libraries that I expect to use}
我完成了安裝模塊後,我回去重新運行該命令來收集.so文件,並進行了新的壓縮包。有幾個軟件包我不得不使用LDFLAGS
以使它們正確安裝,並且我還沒有做足夠深入的測試,但到目前爲止它工作正常,而且我正在使用此Python版本來運行生產應用程序沒有預安裝所有支持庫的機器。
我會嘗試進入Synaptic並搜索Python並下載所有開發工具包等。 – Scott 2010-09-28 13:18:44
我認爲這對unix.se,ubuntu.se,超級用戶或serverfault會更好。 – Chris 2010-09-28 13:44:00