几个月前,我安装了virtualenv
,virtualenvwrapper
和pip
,创建了一些虚拟环境并成功使用了Django。
今天回到我的项目后,我无法使用任何这些命令。例如:
/> lsvirtualenv
返回:
/>
此外:
/> workon
也会返回:
/>
这可能是什么原因?文件夹.virtualenv
位于/users/myUser/documents/projects/.virtualenvs
,其内容为:
get_env_details
postactivate
postmkproject
postrmvirtualenv
predeactivate
premkvirtualenv
initialize
postdeactivate
postmkvirtualenv
preactivate
premkproject
prermvirtualenv
我错过了什么?谢谢!
答案 0 :(得分:0)
这些命令由脚本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
提供。如果您使用命令mkvirtualenv
(也由virtualenvwrapper
提供)创建虚拟环境,则lsvirtualenv
和workon
会列出它们。
但是如果你这样创建它们:
virtualenv foo
virtualenvwrapper
将无法识别您的虚拟环境。