簡體   English   中英

選擇用於雞蛋安裝的Python版本或安裝站點軟件包的並行版本

[英]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別名。

  1. 我想安裝一個雞蛋 ,例如easy_install networkx-0.36-py2.5.egg ,在這里我必須使用python 2.5而不是2.6版本。 是否可以在不更改python別名的情況下進行?

  2. 您能告訴我,是否以及如何並行安裝networkx-0.36-py2.5networkx-1.0rc1-py2.6

  3. 如何以一種可用於不同Python版本的方式安裝站點包?

easy_installsetuptools軟件包的一部分。 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腳本:

  • /usr/bin/easy_install-2.5
  • /usr/bin/easy_install-2.6

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM