这些命令由脚本生成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
or中.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
不会知道您的虚拟环境。