【问题标题】:mkvirtualenv: command not foundmkvirtualenv: 找不到命令
【发布时间】:2014-11-04 15:47:16
【问题描述】:

我是 Python 虚拟环境的新手,所以在阅读了 this tutorial 之后,我尝试使用 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

我发现this postthis one有类似的问题,但没有一个给我解决方案。

【问题讨论】:

  • 您的.bashrc 文件中还有什么内容?
  • 我的.bashrc 文件中有很多东西,这是多年从各处添加不同命令和功能的结果。
  • set -u在里面吗?
  • 我愿意 set -o notify, set -o noclobber, set -o ignoreeof, set -o nounset
  • 是的,set -o nounset 那是set -u。这将是这里的问题。大部分脚本不希望使用该集合运行,因为它会使许多惯用动作失败。禁用它,看看它是否开始工作。

标签: python bash virtualenv virtualenvwrapper


【解决方案1】:

我在我的 .bashrc 中添加了以下内容,引用 this

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.

【讨论】:

  • 我的 Kubuntu 安装在这里:/usr/share/virtualenvwrapper/virtualenvwrapper.sh
【解决方案2】:

我遇到了同样的问题,我按照教程解决了这个问题:

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

第 1 部分:安装所需的软件包

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

sudo pip install virtualenv virtualenvwrapper

sudo pip install --upgrade pip

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

我使用 vim 编辑 ~/.bashrc。

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

sudo apt-get install vim

其次,编辑~/.bashrc

vi .bashrc

enter <strong>[Shift] + [g]</strong> //<strong>G</strong> (shift + g): to go the end of the file

enter <strong>[a]</strong> //Type <strong>a</strong> to edit the file

然后插入三行:

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

接下来, enter <strong>[Esc]</strong> then <strong>:wq</strong>

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

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

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 再试一次吧。

希望你觉得它有用!

【讨论】:

  • 请注意,在第 2 步中,我需要添加额外的一行:export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
【解决方案3】:
export WORKON_HOME=~/Virtualenvs
export PROJECT_HOME=~/Devel
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
source /usr/local/bin/virtualenvwrapper.sh

如果您干净安装了 virtualenv 和 virtualenvwrapper,那么这应该可以在 mac OS 中使用。它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2012-05-03
    • 2021-02-10
    相关资源
    最近更新 更多