在Mac上安装Python模块到非默认版本的Python

8

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


关于在MacPorts安装的不同版本的Python上使用easy_install安装模块的类似问题,请参见https://dev59.com/j2025IYBdhLWcg3wzZP2。 - juanchopanza
3个回答

5
如果您正在使用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版本?我读过的所有内容都不容易,也没有指向有效方法。 - Michael
好的,显然包名是setuptools而不是easy_install - Michael

3

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


2
如果您使用安装了它们,那么您需要以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 二进制文件... - Michael
python_select已被弃用。请改用sudo port select --set python <python_version> (例如:python26) - fardjad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接