繁体   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