在终端中激活不同的Python版本
我刚把我的Mac重装成了Yosemite系统,并通过Homebrew安装了Python 2和Python 3。我还在我的bash_profile文件里设置了一些别名,这样我就可以选择想用哪个版本的Python了。所以如果我输入p3,就会启动python3的命令行。
我想知道有没有办法激活某个特定版本的Python,而不启动Python的命令行?比如说,如果我在终端里打开任何文件,它能直接使用我激活的那个版本吗?
谢谢!
如果这个问题在别的地方已经回答过了,我很抱歉,我搜索了很久但没找到相关的信息。
1 个回答
与其自己写脚本来管理不同的Python版本,不如使用一个社区广泛使用并经过测试的管理工具:pyenv。使用pyenv,你可以:
轻松地通过命令行安装多个不同的Python版本,不用担心它们之间会有冲突(比如可以用
pyenv install 3.4.2
来安装)。如果你想把可用的包分开管理,可以从任何一个版本创建虚拟环境(例如用
pyenv virtualenv 3.4.2 mypy3projectvenv
)。- 设置特定的环境或版本为活动状态,可以选择:
- 全局设置(用
pyenv global [version-or-venv]
), - 在你配置的文件夹及其子文件夹中本地设置(用
pyenv local [ver-or-venv]
),这通常适用于你有特定版本或虚拟环境的项目, - 在当前终端会话中临时设置(用
pyenv shell [ver-or-venv]
),这可能最接近你想要的p3
命令。
设置好你想使用的Python版本后,所有与Python相关的调用都会自动指向正确的目标(例如python
、pip
、easy_install
、ipython
*、django-admin
*)。运行Python脚本时不需要使用任何特殊命令,只需正常调用它们即可(或者在脚本开头加上标准的#!/usr/bin/env python
)。
*如果在该版本/虚拟环境中安装了这些工具
如果你使用了pyenv-installer脚本:
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
然后按照它告诉你的步骤,把几行代码添加到你的~/.bash_profile
脚本中(然后执行它或者重启bash)……你就能在几秒钟内开始使用了。关键通常是通过brew安装所有Python构建所需的依赖(比如sqlite、OpenSSH、zlib等),但之后你就可以顺利使用了。