python virtualenv pip_python,pip,virtualenv等相关设置
在 Ubuntu 16.04 环境下,系统默认装了 Python 2.7 和 Python 3.5 两个版本。终端输入 python 时,默认进入的是 Python 2.7——这在实际开发中经常带来不便,尤其是当项目依赖 Python 3 时,手动切换特别麻烦。于是很多人会选择修改系统默认的 Pyt
在 Ubuntu 16.04 环境下,系统默认装了 Python 2.7 和 Python 3.5 两个版本。终端输入 python 时,默认进入的是 Python 2.7——这在实际开发中经常带来不便,尤其是当项目依赖 Python 3 时,手动切换特别麻烦。于是很多人会选择修改系统默认的 Python 版本。

具体操作很简单,三个命令就能搞定:
cd /usr/bin
sudo rm python # 删除原来的 python 快捷方式
sudo ln -s python3.5 python # 新建快捷方式,指向 Python3.5
如果想更灵活,还可以顺手给 Python 起个别名,比如 sudo ln -s python py,之后输入 py 就相当于输入 python——这和在家目录的 .bashrc 里添加 alias py='python' 效果完全一样。
不过事情往往没有这么简单。如果你在 .bashrc 里已经配置了 virtualenvwrapper,修改完默认 Python 版本后,再执行 source ~/.bashrc 很可能报错:
/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is set properly.
这个错误很典型——根源在于系统默认的 Python 变成了 3.5,但 virtualenvwrapper 当初安装时绑定的是 Python 2.7,两者不一致,自然就找不到模块了。
解决方法也不复杂:在系统环境变量里明确指定 virtualenvwrapper 应该使用的 Python 版本。在 ~/.bashrc(或 /etc/profile)中加上这样几行:
# 配置 Python 虚拟环境变量
export WORKON_HOME=$HOME/.virtualenvs
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2
source /usr/local/bin/virtualenvwrapper.sh
关键就是 VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2——强制让 virtualenvwrapper 使用 Python 2.7 来加载自己。改完之后 source ~/.bashrc 再也不会报错,virtualenvwrapper 又可以愉快地工作了。

































