我正在使用Ubuntu 14.04 LTS实例在Amazon EC2上设置一个Django项目。 我想写我的代码使用Python 3.我已经被build议,最好的办法是使用virtualenvwrapper
。 我已经成功安装了virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4 export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh
到我的.bashrc
文件中。 现在我明白了:
/usr/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportErro r'>: 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/python3.4 and that PATH is set properly.
我怎样才能解决这个问题?
而不是用-p
标志指定一个不同的python解释器,你也可以把你想要的解释器配置成默认的。
根据virtualenvwrapper
的文档 , virtualenvwrapper.sh
找到$PATH
的第一个python
和virtualenv
程序,并记住它们以后使用。
如果你的操作系统默认的python解释器( /usr/bin/python
)没有安装virtualenvwrapper
,请确保你覆盖了如下的环境变量:
VIRTUALENVWRAPPER_PYTHON
到你的python解释器的完整路径 VIRTUALENVWRAPPER_VIRTUALENV
到virtualenv的完整路径 例如,在我的.bash_profile
(Mac)上:
#virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenv source /Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenvwrapper.sh
通过运行source ~/.bash_profile
重新加载你的新变量
按照乔恩的建议,我跑了:
ubuntu@ip-172-31-22-65:~$ mkvirtualenv -p /usr/bin/python3.4 env1 Running virtualenv with interpreter /usr/bin/python3.4 Using base prefix '/usr' New python executable in env1/bin/python3.4 Also creating executable in env1/bin/python Installing setuptools, pip...done. (env1)ubuntu@ip-172-31-22-65:~$ deactivate ubuntu@ip-172-31-22-65:~$ ls ubuntu@ip-172-31-22-65:~$ ls -a . .. .bash_history .bash_logout .bashrc .cache .pip .profile .ssh .virtualenvs ubuntu@ip-172-31-22-65:~$ workon env1 ubuntu@ip-172-31-22-65:~$ workon env1 (env1)ubuntu@ip-172-31-22-65:~$ which python /home/ubuntu/.virtualenvs/env1/bin/python (env1)ubuntu@ip-172-31-22-65:~$ python -V Python 3.4.0
我已经离开了上面列出的.bashrc。 正如Jon所说,安装virtualenvwrapper安装在默认的python上,并且在你创建的任何virtualenv中使用默认的python,除非使用-p标志来指定不同的python解释器。
谢谢乔恩!
如果你使用brew来安装python,你将需要确保你设置这个环境变量:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
在你的bash_profile(或者你正在使用的任何shell)中。