virtualenvwrapper命令不起作用


68
tow-81-235:Projects pessimisticoptimism$ mkvirtualenv development
-bash: mkvirtualenv: command not found
tow-81-235:Projects pessimisticoptimism$ sudo pip install virtualenvwrapper
Password:
Requirement already satisfied (use --upgrade to upgrade): virtualenvwrapper in /Library/Python/2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Python/2.7/site-packages (from virtualenvwrapper)
Requirement already satisfied (use --upgrade to upgrade): virtualenv-clone in /Library/Python/2.7/site-packages (from virtualenvwrapper)
Cleaning up...
tow-81-235:Projects pessimisticoptimism$ mkvirtualenv development
-bash: mkvirtualenv: command not found

为什么会出现此错误?我virtualenvvirtualenvwrapper安装。我想使用mkvirtualenvworkon。我觉得这很奇怪virtualenv,但是virtualenvwrapper没有。

Answers:


184

1,确保您使用sudo安装:

sudo pip install virtualenvwrapper

2,将以下行添加到.bashrc文件中(带有nano ~/.bashrc):

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

3,重新载入您的个人资料

source ~/.bashrc

为我工作..!thnx
Nirav Dangi 2014年

4
关闭我的终端之后。当我再次打开时,workon命令不起作用..发生“找不到命令”,有什么方法可以永久激活吗?所以我每次打开终端时都可以执行'source .venvs / app / bin / activate'吗?
ePascoal 2015年

1
@ePascoal,您好。.bashrc中的行应该被永久更改。每次启动终端时,它都会读取当前用户的.bashrc(假设您使用bash作为外壳程序)。您应该可以workon app在.bashrc的第三行(“ source ...”)下添加,以使其每次自动激活。
chirinosky 2015年

MAC用户-使用.bash_profile而不是.bashrcWill的答案所示。
斯里尼'16

要使其永久存在,请确保将两行(export ...和source ...)添加到〜/ .bahrc文件中,而不仅仅是在终端中复制和粘贴命令!
Learn2day

36

概要

我在Mac上,除了使用bash_profile之外,我的答案与@Ramces答案类似。我只想进一步说明Mac用户,请注意,有很多不同的配置文件,包括:

  • .bashrc
  • .bash_profile
  • .profile

诸如.profile之类的某些文件不会优先于.bash_profile(如果存在),然后将被忽略。如果您成功执行以下步骤并获得了虚拟环境,但是随后关闭了终端并“未找到workon命令”,则需要设置正确的配置文件。有关详细的答案,请参见此处

安装步骤:

  1. sudo pip install virtualenv

    安装virtualenv(允许您分离环境)

  2. sudo pip install virtualenvwrapper

    安装virtualenvwrapper(允许您使用“ workon”命令)

  3. nano ~/.bash_profile

    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh
    
  4. source ~/.bash_profile

    重新加载配置文件。向前,您仅需要步骤5(创建新环境)和步骤6(运行环境)

  5. mkvirtualenv my_env

    这将创建您的虚拟环境(此示例带有“ my_env”)

  6. workon my_env

    这使您可以在特定环境下工作(此示例与“ my_env”一起使用)


在我的计算机上像灵符一样工作。谢谢:)
Piyush Chauhan 2015年

我想用sudo在my_env上运行work。sudo workon my_env说workon:找不到命令。我该如何解决?
Aksh1801 2015年

10

virtualenvwrapper使用安装软件包后pip,您还必须进行一些初始化/设置您的首选项。请参阅virtualenvwrapper文档中介绍

与查找命令最相关的应该是将virtualenvwrapper脚本采购到您的Shell中。在文档中被提到为

$ source /usr/local/bin/virtualenvwrapper.sh

您仍然必须调整设置的路径。我对Mac的猜测是:

$ source /Library/Python/2.7/site-packages/virtualenvwrapper.sh

如果您已经在虚拟环境中,则virtualenvwrapper.sh位于该虚拟环境本身的bin文件夹中,如下所示:{source〜/ mypythonenv / bin / virtualenvwrapper.sh}
Uma Senthil

9

工艺简单

  1. sudo apt-get install python-pip(如果未安装pip)
  2. sudo pip安装virtualenv
  3. 创建一个目录来存储您的virtualenvs

    mkdir〜/ .virtualenvs

  4. sudo pip安装virtualenvwrapper

  5. 运行以下命令

    导出WORKON_HOME =〜/ .virtualenvs

  6. 将virtualenvwrapper.sh添加到.bashrc将此行添加到〜/ .bashrc的末尾,以便加载virtualenvwrapper命令。

    。/usr/local/bin/virtualenvwrapper.sh

  7. 您将通过执行ctrl + h在主目录中找到.bashrc.sh文件。如果没有,则使用find命令查找.bashrc.sh“文件ls -la〜/ |更多”

  8. 点击此命令

    源/usr/local/bin/virtualenvwrapper.sh

  9. 点击此命令

    来源〜/ .bashrc


4

听起来您的计算机上安装了多个Python,而virtualenvwrapper没有指向正确的Python。

找出正在使用哪个Python virtualenvwrapper。您会得到一个提示,可以找到哪里which virtualenvwrapper.sh(在这种情况下/usr/local/bin):

> /usr/local/bin/virtualenvwrapper.sh

如果您在这里没有得到任何回报,请确保在安装时使用正确的点子。该pip命令可能会链接到您期望的其他Python。检查你的usr/local/bin目录PIP链接(pippip2pip2.7pip3pip3.5)。这很容易得到系统pippip2并且容易pip2.7混淆。

找到Python位置后,在您的中添加/更新所有路径.profile

export WORKON_HOME=$HOME/venv
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2
source /usr/local/bin/virtualenvwrapper.sh

最后重新加载您的个人资料: source ~/.profile


为什么使用$ HOME / Envs而不是$ HOME / venv?我也收到错误:/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh:fork:资源暂时不可用任何提示,请问发生了什么?
chikitin

Envs是一个任意选择。我venv更喜欢,因为它们都是小写的:)fork: Resource temporarily unavailable您可能已达到系统的最大进程数(系统范围或每个用户的数量,或者内存不足)。
布鲁诺

2

我在Mac OS X 10.9.2上,对我来说virtualenvwrapper.sh文件存在于

/usr/local/bin/virtualenvwrapper.sh

所以我只是将其复制到~/.profile文件中:

source /usr/local/bin/virtualenvwrapper.sh

现在我的~/.profile文件看起来像这样:

# MacPorts Installer addition on 2014-02-23_at_17:28:39: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

source /usr/local/bin/virtualenvwrapper.sh

现在我可以使用virtualenvwrapper命令了,没有任何问题


1

使用Python的Anaconda(来自Continuum)发行版的用户应注意

sudo pip install virtualenvwrapper

可以识别蟒蛇。所以如果你

which python

这应该使您了解将virtualenv指向.bashrc和/或.profile配置文件的位置。


pip可以链接到另一个python。which pippip -V会为您提供一个更好的主意,即将python pip链接到哪个链接,从而使您获得virtualenvwrapper。
布鲁诺
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.