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
有人对我的案子有意见吗?
【问题讨论】:
看起来 Djangomanage.py
需要安装 virtualenv
。你安装了吗?
【参考方案1】:
使用pip install virtualenv
安装 virtualenv。
如果您已经安装了它,请尝试通过使用pip uninstall virtualenv
将其删除然后重新安装来重新安装它。
祝你好运。
【讨论】:
这适用于我在 OS X 上使用 MacPorts Python。尽管 MacPorts 包含virtualenv
和 virtualenvwrapper
的端口,但它们已经过时了。所以pip
与virtualenv
捆绑在一起已经过时,强制卸载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:没有名为 websocket 的模块
ImportError:没有名为“backports”的模块