[英]Choose Python version for egg installation or install parallel versions of site-package
通過fink install
我在Mac OS X計算機上放置了以下Python版本:
python2.3
, python2.4
, python2.5
, python2.6
。 此外, python
是我系統上python2.6
別名。
我想安裝一個雞蛋 ,例如easy_install networkx-0.36-py2.5.egg
,在這里我必須使用python 2.5而不是2.6版本。 是否可以在不更改python
別名的情況下進行?
您能告訴我,是否以及如何並行安裝networkx-0.36-py2.5
和networkx-1.0rc1-py2.6
?
如何以一種可用於不同Python版本的方式安裝站點包?
easy_install
是setuptools
軟件包的一部分。 Fink
為python 2.5和python 2.6提供了單獨的setuptools
軟件包:
fink install setuptools-py25 setuptools-py26
然后,您可以下載networkx
並將其安裝到兩個版本:
/sw/bin/easy_install-2.5 networkx
/sw/bin/easy_install-2.6 networkx
如果您需要特定版本的軟件包:
/sw/bin/easy_install-2.5 networkx==0.36
/sw/bin/easy_install-2.6 networkx==0.36
編輯:閱讀內德·迪利的答案,然后再閱讀
1。
在我的系統上,每個python版本都有不同的easy_install腳本:
2.6版本的內容如下所示:
#!/System/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
import sys
sys.argv[0] = sys.argv[0].replace('-2.6', '')
# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==0.6c9','console_scripts','easy_install'
__requires__ = 'setuptools==0.6c9'
import sys
from pkg_resources import load_entry_point
sys.exit(
load_entry_point('setuptools==0.6c9', 'console_scripts', 'easy_install')()
)
現在,如果您的計算機上還沒有這些腳本,則可以使用上述腳本作為模板來創建它們。 只需更改第一行,使其指向正確的python解釋器即可。 大概是這樣的:
#!/sw/bin/python23
並更改第三行以匹配當前腳本名稱; 意思是,如果腳本名為easy_install-2.3,則它應如下所示:
sys.argv[0] = sys.argv[0].replace('-2.3', '')
當然,如果您沒有使用setuptools版本0.6c9,則也必須更改此設置。
另一種方法是將easy_install腳本作為正確的python版本的參數運行。 像這樣:
$ python23 /some/path/easy_install networkx-0.36-py2.5.egg
2。
每個python版本都有一個不同的site-lib,因此它們彼此獨立。 您可以為不同的python版本安裝不同的模塊和版本
3。
您可以使env變量PYTHONPATH指向公共目錄,或者在腳本中將公共目錄添加到sys.path 。 但是請注意,某些模塊僅適用於某些python版本,並且包含必須為每個python版本編譯的C代碼...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.