几个月前,我安装了virtualenv
,virtualenvwrapper
和pip
,创建了一些虚拟环境并成功地使用了Django。
今天回到我的项目后,我无法使用任何这些命令。例如:
/> lsvirtualenv
返回:
/>
进一步:
/> 修工
还返回:
/>
这可能是什么原因?文件夹.virtualenv
位于此处/users/myUser/documents/projects/.virtualenvs
其内容为:
get_env_details
postactivate
postmkproject
postrmvirtualenv
predeactivate
premkvirtualenv
initialize
postdeactivate
postmkvirtualenv
preactivate
premkproject
prermvirtualenv
我错过了什么?谢谢!
这些命令由脚本virtualenvwrapper.sh
生成。您必须获取该文件才能获取命令。
试试这个:
find / -name "virtualenvwrapper.sh" 2>/dev/null
它应该找到并返回文件路径。在我的系统上是:
/usr/share/virtualenvwrapper/virtualenvwrapper.sh
所以你可以做到:
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
现在您应该有命令。您可能希望在每次启动系统时都拥有这些命令而无需获取virtualenvwrapper.sh
。
将该行添加到您的.bashrc
(或者以 .bash_profile
或 .profile
为单位(,以及另外两行
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Projects
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
之后,手动创建目录Projects
(您可以随意调用它并将其放置在您想要的任何位置(:
mkdir $HOME/Projects
下次启动后,您应该拥有所有命令和新的环境变量。当您执行以下操作时:
mkproject foo
将创建新的目录 foo:
.virtualenvs/foo
和:
Projects/foo
第一个是您的虚拟环境,第二个是您的项目所在的位置。使用workon foo
您可以激活它,使用cdvirtualenv
和cdproject
您可以在它们之间切换。
编辑:
在重新阅读您的问题后,我认为问题最终可能出在您创建虚拟环境的方式上。
命令lsvirtualenv
和workon
由 virtualenvwrapper
提供。如果您使用 comand mkvirtualenv
(也由 virtualenvwrapper
提供(创建虚拟环境,则 lsvirtualenv
和 workon
将列出它们。
但是如果你像这样创建它们:
virtualenv foo
virtualenvwrapper
不会意识到您的虚拟环境。