在Mac上将python模块安装到python的非默认版本
我在Mac上安装了两个不同版本的Python。默认版本是2.5,所以当我安装模块时,它会安装到2.5。我需要能够将一些模块安装到不同版本的Python上,因为我正在处理使用不同版本的项目。有人知道如何做到这一点吗?感谢您的帮助。如果您已使用安装它们,请运行(以root用户身份):在Mac上将python模块安装到python的非默认版本,python,module,macports,homebrew,fink,Python,Module,Macports,Homebrew,Fink,我在Mac上安装了两个不同版本的Python。默认版本是2.5,所以当我安装模块时,它会安装到2.5。我需要能够将一些模块安装到不同版本的Python上,因为我正在处理使用不同版本的项目。有人知道如何做到这一点吗?感谢您的帮助。如果您已使用安装它们,请运行(以root用户身份): 否则,您可以设置$PYTHON\u PATH环境变量,并将所需路径添加到$PATH环境变量中 您还需要更新/Library/Frameworks/python.framework中的python.current(或类
否则,您可以设置
$PYTHON\u PATH
环境变量,并将所需路径添加到$PATH
环境变量中
您还需要更新/Library/Frameworks/python.framework
中的python.current
(或类似名称的东西)符号链接
我强烈建议使用软件包管理器(、等)安装所有版本,以便更易于管理。如果您通过setuptools(即
python setup.py
)进行安装,它将安装到您使用的python可执行文件的lib目录中(除非它是一个坏包)。如果您使用setup.py进行安装,只需通过适当版本的Python运行它,例如:
python2.6 setup.py install
如果您使用的是easy_install,那么对应的Python版本应该有一个名为easy_install-N.N的版本,例如
easy_install-2.6 some_module
如果您正在处理需要不同版本的Python的不同项目,请考虑使用(和)-它允许您启动并使用多个环境,每个环境都有自己的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安装模块
当使用macports ara安装不同版本的python时,请查看如何准确获得所需的easy_install版本?我准备的东西都不容易,也没有给我指出什么有用的东西。好吧,显然包名是setuptools
noteasy\u install
port install python\u select
似乎进展顺利,但没有python\u select
binary…python\u select
被弃用。Dosudo端口选择——改为设置python(例如python26)
。
$ 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
$ workon foo
foo $ python -m some_mod # no error, apns available within the env
foo $