【问题标题】:Install python module to non default version of python on Mac在 Mac 上将 python 模块安装到非默认版本的 python
【发布时间】:2014-05-03 15:26:31
【问题描述】:

我的 Mac 上安装了几个不同版本的 Python。默认版本是 2.5,所以当我安装一个模块时,它会安装到 2.5。我需要能够将一些模块安装到不同版本的 Python,因为我正在处理使用不同版本的项目。有谁知道如何做到这一点?感谢您的帮助。

【问题讨论】:

标签: python module


【解决方案1】:

如果您使用 setup.py 进行安装,只需通过适当版本的 Python 运行它,例如:

python2.6 setup.py install

如果您使用的是 easy_install,则对应的 Python 版本应该有一个名为 easy_install-N.N 的版本,例如

easy_install-2.6 some_module

如果您正在处理需要不同版本 Python 的不同项目,请考虑使用 virtualenv(和 virtualenvwrapper) - 它允许您启动和使用多个环境,每个环境都有自己的 Python 版本和一组图书馆。示例用法如下:

$ python -V
Python 2.5.4
$ mkvirtualenv --python=python2.6 foo
foo $ python -V
Python 2.6.1
foo $ pip install some_mod # installs module in foo's library, rather
                           # than site wide
foo $ deactivate # leave the virtual env
$ python -m some_mod
/path/to/python: No module named some_mod

要稍后返回 foo 环境,请使用workon

$ workon foo
foo $ python -m some_mod # no error, apns available within the env
foo $ 

因此,您可以使用 virtualenv 为已安装的每个 Python 版本维护单独的环境。在这些环境中,pip 和 easy_install 只是做正确的事。

【讨论】:

  • 您究竟如何获得所需的easy_install 版本?我准备的东西都不是简单的,也不是什么有用的东西。
  • 好的,显然包名是setuptools而不是easy_install
【解决方案2】:

如果您通过 setuptools 安装(即python setup.py),它将安装到您使用的 python 可执行文件的 lib 目录中(除非它是一个损坏的包)。

【讨论】:

    【解决方案3】:

    如果您使用 安装了它们,那么您运行(以 root 身份):

    port select --set python <python_version>
    

    提示:要列出可用版本,请运行:

    port select --list python
    

    否则,您可以设置$PYTHON_PATH 环境变量并将所需的 路径添加到您的$PATH 环境变量中。

    您还需要更新/Library/Frameworks/Python.framework 中的python.current(或类似名称)符号链接。


    我强烈建议使用包管理器( 等)安装所有版本,以便于管理。

    【讨论】:

    • port install python_select 似乎可以进行,但之后没有python_select 二进制文件...
    • python_select 已弃用。请改用sudo port select --set python &lt;python_version&gt; (ex. python26)
    猜你喜欢
    • 2013-06-20
    • 2014-09-29
    • 2021-03-12
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2020-05-14
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多