关于类似问题的很多其他线索,但没有一个我能找到与我的情况完全相同的情况。所以,这里是:
我做过的事情:
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper
当前状态:
的.bash_profile
export PATH=/usr/local/bin:$PATH
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
export WORKON_HOME=$HOME/.virtualenvs
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
运行mkvirtualenv test
会导致:
New python executable in trunk/bin/python
Installing setuptools, pip...done.
/usr/bin/python: No module named virtualenvwrapper
手动检查'/ usr / local / bin'表示virtualenvwrapper.sh存在
/usr/bin/python
我尝试了什么:
非常感谢任何帮助实现这项工作。
答案 0 :(得分:79)
通过编辑我的〜/ .bash_profile 并添加以下内容,我已经成功解决了这个问题:
export WORKON_HOME=$HOME/code/.virtualenvs
export PROJECT_HOME=$HOME/code
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
source /usr/local/bin/virtualenvwrapper.sh
保存,关闭。
然后:
$ source ~/.bash_profile
和:
$ mkvirtualenv test
答案 1 :(得分:30)
我在ubuntu上设置virtualenvwrapper时遇到了同样的问题。
我使用pip安装了virtualenv,virtualenvwrapper,它在python3.5的站点包中安装了这些模块。我是怎么发现的?
打开终端并输入
$ pip --version
来自/home/clyton/.virtualenvs/test1/lib/python3.5/site-packages(python 3.5)的pip 9.0.1
然后我检查了值为VIRTUALENVWRAPPER_PYTHON
的变量
在/ usr / bin中/ Python的。
在您的终端上输入
$ ls -l $VIRTUALENVWRAPPER_PYTHON
lrwxrwxrwx 1 root root 9 Dec 10 2015 **/usr/bin/python -> python2.7**
正如您所看到的,此变量指向python2.7,您可能已在不同的python站点包中安装了virtualenv。
所以要解决这个问题,只需在bashrc中添加以下行
即可VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5
注意:将上述值设置为安装virtualenv的python版本。在我的情况下它是python3.5所以我设置了该值。如何找出用于安装virtualenv的python版本?再次在终端中输入pip --version
。
然后打开一个新的shell会话并再次尝试mkvirtualenv。这次它应该有效。
答案 2 :(得分:13)
如果你看一下 virtualenvwrapper.sh 脚本,你会发现这些行:
# Locate the global Python where virtualenvwrapper is installed.
if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ]
then
VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi
如果您没有为您的python版本手动导出VIRTUALENVWRAPPER
,则系统会默认系统默认情况下您没有安装 virtualenvwrapper 软件包。
我这样解决了这个问题:
echo "export VIRTUALENVWRAPPER_PYTHON=$(which python3.6)" >> ~/.zshrc
这些都记录在官方网站here上。
答案 3 :(得分:6)
尝试使用pip2 install virtualenv virtualenvwrapper
安装virtualenv和virtualenvwrapper。它似乎是pip install virtualenv,它是python 3的包装器,因为它是默认的
答案 4 :(得分:2)
尝试卸载virtualenv
和virtualenvwrapper
,然后使用pip
重新安装它(检查是否符号链接或为其他版本分配了别名)(2.7版)想)。
我遇到了同样的错误,我刚刚做了这个并解决了我的问题。
我使用的是Ubuntu机器。
我希望这有帮助。
答案 5 :(得分:2)
最近(2017年夏天)更新Homebrew和python后出现此错误。在我的情况下,问题是Homebrew不再覆盖系统python,我没有为系统python安装virtualenv
和virtualenvwrapper
。
我的解决方案是将以下内容添加到~/.bash_profile
(或~/.zshrc
)中:
export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"
这使得python
指向了python的brew版本,并且还给了我pip
。此版本的python
已安装virtualenv
和virtualenvwrapper
,因此错误不再出现。有关详细信息,请参阅brew info python
和https://github.com/Homebrew/homebrew-core/issues/15746下的警告部分
答案 6 :(得分:1)
在我的情况下,将此行添加到我的.zshrc文件中就可以了,
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7
记得使用〜/ .zshrc来更新当前终端的更改。
答案 7 :(得分:0)
我不知道它是否与任何人有关,但在virtualenv处于活动状态时编辑~/.zshrc
时出现此错误。因此,我必须先deactivate
然后rmvirtualenv env_name
才能删除错误。然后我重新创建了环境:mkvirtaulenv env_name
和workon env_name
,这次我没有遇到任何错误。
希望它可以帮助某人。
答案 8 :(得分:0)
我意识到这个线程已经很老了,但是我在尝试找到解决此问题的方法时遇到了麻烦(使用pip3
,但可以根据需要交换pip
)。
我最终使用了在另一篇文章here中找到的解决方案的修改版本。
将以下内容添加到您的.zshrc
/ .bashrc
中:
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
我不得不在上面添加
local
,但猜测您是否需要这样做取决于您的 安装。我意识到我指的是错误的位置,因为 我收到了这个错误:zsh: no such file or directory: /usr/bin/python3
,所以我只是做了which python3
来看看它的住处。
请确保卸载virtualenv
和virtualenvwrapper
的任何现有版本,因为您不能简单地使用计算机上的现有版本将其安装到新位置,必须先删除旧版本,然后再安装新版本的新位置。
要安装:
sudo /usr/local/bin/pip3 install virtualenv virtualenvwrapper
而且,根据this的帖子,您应该能够使用以下命令使用您的python3版本创建虚拟环境:
mkvirtualenv --python=
其中python3 nameOfEnvironment
答案 9 :(得分:0)
在Ubuntu 20.xx中,只能通过指定python可执行文件路径来创建虚拟环境。
$ which python3
/usr/bin/python3
$ mkvirtualenv --python=/usr/bin/python <name_of_your_virtual_env>