mkvirtualenv:找不到命令

17 投票
3 回答
54964 浏览
提问于 2025-04-20 23:30

我刚接触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

我找到了一些类似的问题,比如这个帖子这个帖子,但都没有给我解决办法。

3 个回答

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

如果你在Mac上干净地安装了virtualenv和virtualenvwrapper,那么这个方法应该可以用。我试过是没问题的。

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 失败了。所以尽管你确实安装了 virtualenvvirtualenvwrapper,还是建议再试一次用 sudo pip install virtualenv virtualenvwrapper

希望你觉得这些信息有用!

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.

撰写回答