【问题标题】:Virtualenv and virtualenvwrapper seem to not workVirtualenv 和 virtualenvwrapper 似乎不起作用
【发布时间】:2016-11-24 18:27:16
【问题描述】:

几个月前,我安装了virtualenvvirtualenvwrapperpip,创建了几个虚拟环境并成功使用了Django。

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

/> lsvirtualenv

返回:

/ >

进一步:

/ > 工作中

也返回:

/ >

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

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

我错过了什么?谢谢!

【问题讨论】:

    标签: virtualenv virtualenvwrapper virtualenv-commands


    【解决方案1】:

    这些命令由脚本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 可以激活它,使用cdvirtualenvcdproject 可以在它们之间切换。

    编辑:

    重读您的问题后,我认为问题最终可能出在您创建虚拟环境的方式上。

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

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

    virtualenv foo
    

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

    【讨论】:

      猜你喜欢
      • 2011-11-14
      • 1970-01-01
      • 2015-07-06
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      相关资源
      最近更新 更多