0

几个月前,我安装了virtualenv, virtualenvwrapperand pip,创建了一些虚拟环境并成功地使用了 Django。

今天回到我的项目后,我无法使用这些命令中的任何一个。例如:

/> lsvirtualenv

返回:

//

更远:

// 工作

还返回:

//

这可能是什么原因?文件夹.virtualenv位于此处/users/myUser/documents/projects/.virtualenvs,其内容为:

get_env_details
postactivate
postmkproject
postrmvirtualenv
predeactivate
premkvirtualenv
initialize
postdeactivate
postmkvirtualenv
preactivate
premkproject
prermvirtualenv

我错过了什么?谢谢!

4

1 回答 1

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_profileor中.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你可以激活它,用cdvirtualenvcdproject你可以在它们之间切换。

编辑:

重新阅读您的问题后,我认为问题最终可能与您创建虚拟环境的方式有关。

命令lsvirtualenvworkon由 提供virtualenvwrappermkvirtualenv如果您使用命令(也由 提供)创建虚拟环境,那么virtualenvwrapper将列出它们。lsvirtualenvworkon

但是如果你像这样创建它们:

virtualenv foo

virtualenvwrapper不会知道您的虚拟环境。

于 2017-05-22T11:14:38.097 回答