选择Python版本进行egg安装或安装站点包的并行版本

选择Python版本进行egg安装或安装站点包的并行版本,python,easy-install,egg,Python,Easy Install,Egg,通过fink install我在Mac OS X计算机上安装了以下Python版本: python2.3 python2.4 python2.5 python2.6 此外,python是我系统上的python2.6的别名 我想安装一个,例如,easy\u install networkx-0.36-py2.5.egg,在这里我必须使用python 2.5而不是2.6版。这是否可以在不更改python别名的情况下实现 您能否告诉我,我是否可以并行安装networkx-0.36-py2.5和ne

通过
fink install
我在Mac OS X计算机上安装了以下Python版本:

  • python2.3
  • python2.4
  • python2.5
  • python2.6
此外,
python
是我系统上的
python2.6
的别名

  • 我想安装一个,例如,
    easy\u install networkx-0.36-py2.5.egg
    ,在这里我必须使用python 2.5而不是2.6版。这是否可以在不更改python别名的情况下实现

  • 您能否告诉我,我是否可以并行安装
    networkx-0.36-py2.5
    networkx-1.0rc1-py2.6

  • 我怎样才能安装一个站点包,使它可以用于不同的Python版本


  • 编辑:在阅读本手册之前先阅读


    1.

    在我的系统上,每个python版本都有不同的easy_安装脚本:

    • /usr/bin/easy_安装-2.5
    • /usr/bin/easy_安装-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')()
    )
    
    sys.argv[0] = sys.argv[0].replace('-2.3', '')
    
    现在,如果您的机器上还没有这些脚本,您可以使用上面的模板创建它们。只需更改第一行,使其指向正确的python解释器。可能是这样的:

    #!/sw/bin/python23
    
    并更改第三行以匹配当前脚本名称;也就是说,如果脚本名为easy_install-2.3,那么它应该如下所示:

    #!/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')()
    )
    
    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版本都有不同的站点库,因此它们彼此独立。您可以为不同的python版本安装不同的模块和版本

    3.


    您可以使env变量PYTHONPATH指向公共目录,或者在脚本中向sys.path添加公共目录。但是请注意,有些模块仅适用于某些python版本,并且包含必须为每个python版本编译的C代码。

    easy\u 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
    

    /usr/bin/easy_install-2.x命令由苹果为苹果提供的python提供。安装Fink setuptools包是为Fink安装的Python获取easy_install-2.x命令的简单而正确的方法。我没有使用Fink,并且假设Fink没有提供必要的脚本。所以我试着描述如何自己创造它们。。。鉴于fink有包含这些脚本的包,使用这些fink包显然更好。谢谢。而且,作为记录,MacPorts(Fink在OS X上的主要竞争对手)为其python2.X软件包提供了类似版本的setuptools软件包。