当前位置: 首页 > 知识库问答 >
问题:

未使用pip在virtualenv中安装Python包

李新霁
2023-03-14

我安装twisted时遇到问题

pip --version

PIP1.1 from/home/chris/GL/GLBackend/glenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg(python 2.7)

创建虚拟环境

chris@chris-mint ~/GL/GLBackend $ sudo virtualenv -p python2.7 glenv

在glenv/bin/python2.7中创建新的python可执行文件也在glenv/bin/python中创建可执行文件安装分发............................................................................................................................................................................................................完成。安装pip...............完成。

以防万一,我将启用所有权限

chris@chris-mint ~/GL/GLBackend $ sudo chmod -R 777 glenv

chris@chris-mint ~/GL/GLBackend $ source glenv/bin/activate


(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze

1.2.1分发文件

此处未列出已安装的twisted

(glenv)chris@chris-mint ~/GL/GLBackend $ sudo pip install twisted

要求已经满足(use--upint-升级):扭曲 /usr/local/lib/python2.7/dist-packages要求已经满足(use--upint-upint-upint-upint-upit-upint-upint-upint-upint-upint-upint-upint-upint-upint-upint-upint-upit-upint-upint-upint-upint-upint-upint-upint-spint-spit-spint-spint-spint-sp

但是当我安装它时,它说它已经安装了。强制安装:

sudo pip install -I twisted

下载/解包twisted下载twisted-12.3.0.tar.bz2(2.6Mb):下载2.6Mb运行setup.py egg_信息,用于包twisted。

成功安装扭曲zope.interface分配清理...

但它仍然没有安装

(glenv)chris@chris-mint ~/GL/GLBackend $ pip freeze

1.2.1分发文件

**当我尝试运行使用扭曲的Python脚本时,我得到一个错误,说扭曲没有安装。即:

ImportError:没有名为twisted.python的模块**

共有1个答案

闽鸿宝
2023-03-14

这里的问题是,您使用的是sudo,而您不应该这样做。这导致pip尝试安装到/usr/local/lib而不是~/glenv/lib。(而且,由于您使用了sudo,它成功地做到了这一点,但这对您没有帮助,因为您不允许在venv中使用系统站点包。)

有多种原因导致这种行为,但最有可能的是:在大多数系统(包括我可以立即访问的各种Mac和RHEL/CentOS设备)上,sudoers文件将重置您的环境,然后重新添加少量白名单环境变量。这意味着当您sudopip时,它将看不到virtualenv设置的环境变量,因此它将返回到执行默认操作并安装到系统Python中,而不是安装到venv中。

但说真的,为什么会这样并不重要。答案是一样的:只需执行pip安装,而不是执行sudo pip安装

请注意,您还希望删除viralenv调用上的sudo,因为这可能会导致venv设置错误(这就是为什么您需要sudo chmod,否则就不需要了)...在用户主目录下安装东西的全部意义在于,您可以使用正常的用户权限进行安装。

另外,您可能还需要升级到更新的virtualenv/pip,因为1.8和1.2有一些错误修复和改进。但我已经证实,即使是最新版本(1.8.4和1.2.1),我也会遇到与您完全相同的问题,因此我认为这与此无关。

 类似资料:
  • 我正在尝试在新项目文件夹中安装新的虚拟环境,但它没有在虚拟环境中安装。 下面是bash日志: 这里的问题是没有安装在中。我的问题是-这正常吗?我应该自己安装吗?如果是这样,我将如何做到这一点,以便当我运行类似于的东西时,安装在中? 顺便说一句,我想把所有东西都放在2.7里是我的计算机用户名。

  • 我知道在这方面也有类似的问题。例如,这一条:为Python安装pip、virtualenv和distribute的正确方法是什么? 我想安装这些模块按照我的学习Python的硬的方式教程:http://learnpythonthehardway.org/book/ex46.html 我设法(我想)通过使用sudoeasy_installpip安装pip,但是当我运行pydoc模块时,我看不到它。所

  • 我遇到了一个独特的版本,它是在这里和这里的答案中讨论的、有着良好记录的Virtualenv-Pip错误。在这些情况下,问题在于pip安装在全局文件夹中,在某些情况下是因为其中一个pip脚本中的shebang错误,在另一些情况下是因为脚本中的第42行错误,但它始终是全局安装的。 我的问题是不同的:在我的虚拟环境

  • 问题内容: 我正在尝试在新的virtualenv中安装matplotlib。 当我做: 要么 我收到此错误: 任何人都知道发生了什么事吗? 任何帮助,不胜感激。 问题答案: 构建Matplotlib需要(和)这不是python库,因此无法处理(或)安装它。 您需要按照和(或与您的操作系统等效的其他方式)安装一些东西。 请参阅matplotlib的构建要求/说明。

  • 问题内容: 我为Django 1.9项目创建了virtualenv。我试图通过pip安装mysqlclient或mysql-python,但它们都给我错误。 两者都给我相同的错误信息: 命令“ python setup.py egg_info”在/ private / var / folders / r4 / bkv_4t9s4r140pjkgv6lsq8w0000gn / T / pip-bui

  • 问题内容: 我正在使用Amazon Linux AMI版本2013.09。我已经安装了virtualenv,并在激活后再运行pip install mysql- connector-python,但是当我运行我的应用程序时出现错误:。还有其他人在这样做时遇到麻烦吗?我可以将其安装在virtualenv之外,并且脚本可以正常运行。在此先感谢您的帮助! 问题答案: 几件事。程序包命名不一致,因此您可能