[英]Installed virtualenv and virtualenvwrapper: Python says no module named virtualenvwrapper
关于类似问题的许多其他主题,但我找不到与我完全相同的案例。 所以,这里是:
我做的事情:
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
我试过的:
非常感谢任何帮助使其正常工作。
通过编辑我的~/.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
我在 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。 这次应该可以了。
如果您查看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
这是所有记录在官方网站上这里。
尝试使用pip2 install virtualenv virtualenvwrapper
安装 virtualenv 和pip2 install virtualenv virtualenvwrapper
。 看起来像 pip install virtualenv 并且它是 python 3 的包装器,因为它是默认的
就我而言,将这一行添加到我的 .zshrc 文件中就行了,
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7
请记住 source ~/.zshrc 以更新对当前终端的更改。
最近(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下的警告部分
尝试卸载您的virtualenv
和virtualenvwrapper
并使用版本 2.7 中的pip
(检查您是否符号链接您的 pip 或为其分配了其他版本的别名)重新安装(我认为)。
我遇到了同样的错误,我只是这样做并解决了我的问题。
我使用 Ubuntu 机器。
我希望这会有所帮助。
我不知道它是否与任何人有关,但是在 virtualenv 处于活动状态时编辑~/.zshrc
时出现此错误。 所以我不得不deactivate
然后rmvirtualenv env_name
来消除错误。 然后我重新创建了 env: mkvirtaulenv env_name
和workon env_name
,这次我没有错误。
希望它可以帮助某人。
我意识到这个线程是超级旧的,但我在试图找到解决这个问题的方法时被它卡住了(使用pip3
但你可以根据需要交换pip
)。
我结束了使用的解决方案的修改版本,我在另一篇文章中找到这里。
将以下内容添加到您的.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
而且,根据这篇文章,您应该能够使用以下命令使用您的 python3 版本创建一个虚拟环境:
mkvirtualenv --python=`which python3` nameOfEnvironment
在 Ubuntu 20.xx 中,只能通过指定 python 可执行路径来创建虚拟环境。
$ which python3
/usr/bin/python3
$ mkvirtualenv --python=/usr/bin/python <name_of_your_virtual_env>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.