2011-02-08 127 views
16

我爲我的一個任務構建了quickfix引擎(http://www.quickfixengine.org/),並且也爲它構建了python支持。不幸的是,這是一個多用戶環境,我沒有訪問oython安裝路徑。因此,make install命令嘗試複製文件並失敗。我設法註釋了它試圖做到這一點的兩條線,並完成了make install。由於我無法將文件放在那裏,我可以在哪裏放置創建的.so文件。我如何讓Python知道它在那裏?我查看了python.ord文檔,但它僅描述了setup.py安裝的過程。此外,我試圖把.so在sys.path中的路徑,這沒有奏效。還有關於python軟件包解剖的文檔嗎?謝謝。如何手動安裝python庫

+0

「另外我試圖在sys.path中放入.so的路徑,但沒有奏效。「您是否曾嘗試從腳本(或交互式會話)中將擴展模塊導入與擴展名爲`.so`的文件相同的目錄? – gotgenes 2011-02-10 03:57:44

回答

15

我打算假設編譯QuickFix包不會生成setup.py文件,而只是編譯Python綁定並依靠make install將它們放在適當的位置。

在這種情況下,一個快速和骯髒的解決辦法是編譯QuickFix的來源,找到Python擴展模塊(您的系統,這些末端用.so擴展上顯示),以及該目錄添加到您的PYTHONPATH環境變量例如,在您的shell配置文件中添加

export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH 

或類似的行。

更強大的解決方案將包括確保與./configure --prefix=$HOME/.local編譯。假設QuickFix知道將Python文件放在合適的site-packages中,那麼當您執行make install時,它應該將文件安裝到~/.local/lib/pythonX.Y/site-packages,對於Python 2.6+,它應該已經在Python路徑上作爲per-user site-packages directory

如果,另一方面,它確實提供了一個setup.py文件,只需爲Python 2.6+運行

python setup.py install --user 

2

這裏是安裝Python模塊的官方FAQ:http://docs.python.org/install/index.html

有一些技巧,這可以幫助你。

+0

是的,我查看了它。但問題是它描述瞭如何安裝這些東西被打包成一個python模塊(用setup.py來安裝),它不會告訴你如何安裝一些庫,它會在.so文件中留下一個。: – 2011-02-08 13:05:19

3

您需要將它安裝在您的home文件夾的目錄中,並以某種方式操縱PYTHONPATH,以便包含目錄。

最好也是最簡單的就是使用virtualenv。但是這需要安裝,導致一個catch 22. :)但檢查是否安裝了virtualenv。如果安裝了它,你可以這樣做:

$ cd /tmp 
$ virtualenv foo 
$ cd foo 
$ ./bin/python 

然後,你可以運行安裝像往常一樣,用的/ tmp /富/蟒蛇的setup.py安裝。 (顯然你需要在你的主目錄下的虛擬環境中創建虛擬環境,而不是在/ tmp/foo中;))

如果沒有virtualenv,你可以安裝你自己的本地Python。但是這也許是不允許的。然後你就可以在本地目錄中安裝包的包:

$ wget http://pypi.python.org/packages/source/s/six/six-1.0b1.tar.gz#md5=cbfcc64af1f27162a6a6b5510e262c9d 
$ tar xvf six-1.0b1.tar.gz 
$ cd six-1.0b1/ 
$ pythonX.X setup.py install --install-dir=/tmp/frotz 

現在,你需要添加/tmp/frotz/pythonX.X/site-packages到您的PYTHONPATH,你應該啓動和運行!