ImportError:没有名为 virtualenv 的模块

Posted

技术标签:

【中文标题】ImportError:没有名为 virtualenv 的模块【英文标题】:ImportError: No module named virtualenv 【发布时间】:2014-01-30 23:08:10 【问题描述】:

我在 windows7 上使用 Django 1.3.7 和 python 2.7.6 在这行代码中执行 manage.py 时出现错误

import shutil, sys, virtualenv, subprocess

运行它,我得到了这个错误

C:\Django-Proj\>python manage.py update_ve
Traceback (most recent call last):
  File "manage.py", line 4, in <module>
    import shutil, sys, virtualenv, subprocess
ImportError: No module named virtualenv

有人对我的案子有意见吗?

【问题讨论】:

看起来 Django manage.py 需要安装 virtualenv。你安装了吗? 【参考方案1】:

使用pip install virtualenv 安装 virtualenv。 如果您已经安装了它,请尝试通过使用pip uninstall virtualenv 将其删除然后重新安装来重新安装它。 祝你好运。

【讨论】:

这适用于我在 OS X 上使用 MacPorts Python。尽管 MacPorts 包含 virtualenvvirtualenvwrapper 的端口,但它们已经过时了。所以pipvirtualenv 捆绑在一起已经过时,强制卸载MacPorts 并使用pip 安装最新的virtualenv。有关详细信息,对于遇到相同问题的任何 MacPorts 用户,请参阅here。 在ubuntu上,我注意到即使 pip install vitualenv 是成功的,当我执行命令创建一个时,它一直说没有安装 virtualenv 并建议使用 apt 安装。我应该试一试吗? 还发现我有一个子生 /usr/local/bin/virtualenv 二进制文件不会通过 pip 卸载删除,所以一个 sudo rm -f 就可以了,然后做了一个普通用户 pip安装,终于让事情开始了。 完美运行:D【参考方案2】:

我必须安装带有 -H 标志的 virtualenv 以将 HOME 变量设置为目标用户的主目录。

sudo -H pip install virtualenv

【讨论】:

【参考方案3】:

我认为问题是你需要sudo 来全局安装virtualenv。

> pip install virtualenv
Could not find an activated virtualenv (required).
> sudo pip install virtualenv
Downloading/unpacking virtualenv
...

但这会创建只能由 root 读取的文件(取决于 umask)。 在这种情况下,卸载/重新安装可能并不总是有帮助。

您可以通过ls -la /usr/local/lib/python2.7/dist-packages/virtualenv.py 进行检查(将 2.7 替换为您拥有或目标的任何版本)。

我的解决方案很简单:

sudo chmod -R o+rX /usr/local/lib/python2.7

【讨论】:

这对我有用。在我的情况下,virtualenv 是作为 root 安装的;但其他非特权用户无法访问【参考方案4】:

使用 pip3 代替 pip。我遇到了同样的问题,pip3 为我工作。

$ pip3 install virtualenv
$ virtualenv venv --python=python3

【讨论】:

我的系统上没有 pip,使用 pip3 就可以了。【参考方案5】:

试试

python3 -m pip uninstall virtualenv

python3 -m pip install virtualenv

【讨论】:

【参考方案6】:

我刚刚遇到了同样的问题。我必须 pip uninstall virtualenv 作为具有管理员权限的用户,然后 pip install virtualenv 作为普通用户。如果您在管理员权限下安装 virtualenv,我认为这是某种权限问题。

【讨论】:

【参考方案7】:
>virtualenv
ImportError: No module named 'virtualenv'
>pip uninstall virtualenv
PermissionError: [Errno 13] Permission denied:

>sudo pip uninstall virtualenv
Successfully uninstalled virtualenv-15.1.0
>pip install virtualenv
Collecting virtualenv

>virtualenv
Options:

宾果游戏!

【讨论】:

【参考方案8】:

当我通过 pycharm 创建我的 virtualenv 并使用 pycharm 安装要求时,我遇到了同样的问题。 经过反复试验,我发现 virtualenv 没有考虑安装的要求。

解决方案是在激活 virtualenv 后重新安装所有要求:

venv\scripts\activate

python -m pip install -r YourRequirements.txt

下次我最好直接用命令行创建我的virtualenv

【讨论】:

【参考方案9】:

在我的本地主机上使用 ansible pip 模块自动安装一些 pip 时出现此错误。

fatal: [localhost]: FAILED! => "changed": false, "cmd": ["/opt/bin/virtualenv", "--system-site-packages", "-p/usr/bin/python3", "/opt/venv/myenv"], "msg": "\n:stderr: /usr/bin/python3: No module named  virtualenv\n"

卸载 virtualenv python3 -m pip uninstall virtualenv 确实显示 virtualenv 已安装在这里 /home/ubuntu/.local/bin/virtualenv

在ansible任务中指定virtualenv_command:

- name: install requirements file
  pip:
    virtualenv_command: "/home/whoami.stdout/.local/bin/virtualenv"
    virtualenv: "/home/whoami.stdout/.venv/item.env.virtualenv"
    requirements: "/home/whoami.stdout/git/item.env.requirements_txt"
    virtualenv_site_packages: yes
  when: req_stat.stat.exists

【讨论】:

以上是关于ImportError:没有名为 virtualenv 的模块的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:没有名为枚举的模块

ImportError:没有名为“appdirs”的模块

ImportError:没有名为 websocket 的模块

ImportError:没有名为“backports”的模块

ImportError:没有名为 ghostscript 的模块

ImportError:运行火花时没有名为请求的模块