mkvirtualenv命令未找到。

17

我对Python虚拟环境还不熟悉,所以在阅读了这篇教程后,我尝试使用virtualenvwrapper创建我的第一个环境。 我的python3现在仅有基本安装:

$ pip3 list
argparse (1.2.1)
pip (1.5.6)
setuptools (2.1)
stevedore (0.15)
virtualenv (1.11.6)
virtualenv-clone (0.2.5)
virtualenvwrapper (4.3.1)

根据教程的建议,我将以下行添加到我的.bashrc文件中:

export WORKON_HOME=$HOME/.virtualenvs
source /Library/Frameworks/Python.framework/Versions/3.4/bin/virtualenvwrapper_lazy.sh

当我打开一个新的终端时,会出现以下消息:

Last login: Wed Sep 10 22:33:17 on ttys006
-bash: _VIRTUALENVWRAPPER_API: unbound variable
-bash: VIRTUALENVWRAPPER_SCRIPT: unbound variable
-bash: VIRTUALENVWRAPPER_SCRIPT: unbound variable
-bash: _VIRTUALENVWRAPPER_API: unbound variable
-bash: _VIRTUALENVWRAPPER_API: unbound variable
complete: usage: complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...]

我不明白问题出在哪里,但很明显,source /Library/Frameworks/Python.framework/Versions/3.4/bin/virtualenvwrapper_lazy.sh这一行失败了,因为我甚至找不到mkvirtualenv命令:

$ mkvirtualenv test1 -p /usr/bin/python3.3
-bash: mkvirtualenv: command not found

我发现了这篇文章那篇文章,它们都有相似的问题,但是没有一个给出了解决方案。


你的.bashrc文件中还有什么内容? - Etan Reisner
你在那儿使用 set -u 了吗? - Etan Reisner
是的,set -o nounset 就是 set -u。这可能会导致问题。大多数脚本都没有预料到会使用该设置,因为它会使许多惯用操作失败。禁用它并查看是否开始工作。 - Etan Reisner
你的 errexit 开启了吗? - Etan Reisner
当我尝试使用workon环境时,会出现该错误:$ workon pydev /usr/bin/python: No module named virtualenvwrapper /usr/bin/python: No module named virtualenvwrapper。嗯,我没有使用python安装virtualenvwrapper,只是在python3中安装了它。 - aaragon
显示剩余18条评论
3个回答

33

我在我的.bashrc文件中加入了以下内容,参考这里

export PATH=/usr/local/bin:$PATH
source /usr/local/bin/virtualenvwrapper.sh

现在mkvirtualenv可以使用了-

pkoli@pkoli-SVE15136CNB:~/Desktop$ mkvirtualenv BUGS
Using base prefix '/usr'
New python executable in BUGS/bin/python3
Also creating executable in BUGS/bin/python
Installing setuptools, pip...done.

1
对于我的 Kubuntu,它被安装在这里:/usr/share/virtualenvwrapper/virtualenvwrapper.sh。 - caprica

5

我遇到了同样的问题,通过按照以下教程来解决:

http://exponential.io/blog/2015/02/10/install-virtualenv-and-virtualenvwrapper-on-ubuntu/

第一部分:安装所需软件包

sudo apt-get install python-pip python-dev build-essential

sudo pip install virtualenv virtualenvwrapper

sudo pip install --upgrade pip

第二部分:在~/.bashrc中设置virtualenvwrapper。

我使用vim编辑~/.bashrc。

首先,用以下命令安装vim:

sudo apt-get install vim

其次,编辑~/.bashrc

vi .bashrc

输入[Shift] + [g] //G (shift + g):跳转到文件末尾

输入[a] //键入a以编辑文件

然后插入三行:

export WORKON_HOME=~/virtualenvs

export VIRTUALENVWRAPPER_PYTHON=[link-to-python-folder]

source /usr/local/bin/virtualenvwrapper.sh

其中[link-to-python-folder]可以是:

  • 如果您使用python 3,则为

export VIRTUALENVWRAPPER_PYTHON=/user/bin/python3

  • 如果您使用python 2,则为

export VIRTUALENVWRAPPER_PYTHON=/user/bin/python

接下来,输入[Esc]然后键入:wq

Esc键表示返回命令行,:wq表示保存更改并退出vi

第三部分:启用虚拟环境。

source ~/.bashrc

mkdir -p $WORKON_HOME

现在,您可以再次尝试使用mkvirtualenv

mkvirtualenv your_project

  • 要启用“your_project”虚拟环境:

    workon your_project

  • 要退出它:

    deactivate

我注意到当我分别安装virtualenv和virtualenvwrapper(使用两次'sudo pip install')时,运行'source ~/.bashrc'失败了,因为导入模块virtualenvwrapper.hook_loader时出现了故障,所以即使你已经安装了virtualenv和virtualenvwrapper,尝试再次使用'sudo pip install virtualenv virtualenvwrapper'。希望这对你有用!

1
请注意,在第二步中,我需要添加一行额外的代码: export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 - Feiteira

0
export WORKON_HOME=~/Virtualenvs
export PROJECT_HOME=~/Devel
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
source /usr/local/bin/virtualenvwrapper.sh

如果您在 Mac OS 上安装了干净的 virtualenv 和 virtualenvwrapper,则应该可以使用此方法。对我而言,它有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接