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

VirtualEnv/Pip正在尝试全局安装软件包

龚博涛
2023-03-14

编辑找到的#2个解决方案;见下文。

我正在使用VirtualEnv在Flask中编写一个小应用程序。这已经不是我第一次这么做了,但是这次和过去两次我都试过了,我遇到了同样的问题。当我时。flask/bin/activate并尝试安装一个包--pip install flup,例如,它一直在全局安装,而不是在VirtualEnv中。奇怪的是,它只有在我停用之后才会发生,而且这种情况在那一刻是不一致的。

也就是说,如果我一次全部安装,我似乎能够安装我需要的所有东西,甚至偶尔在我停用之后,但在一段时间后,它就停止工作,开始尝试安装到我的全局Python站点包中。(当然,当它这样做的时候,它也在请求权限。在我理解发生了什么之前,我试图用sudo,强迫它,认为我是意外地sudo virtualenv flask-ing或其他什么东西导致了它,但不,它是出于其他原因走向全球的。)

我没有做任何有趣的事情,比如使用--system-site-packages参数,而且在VirtualEnv配置开始之前,我没有更改任何内容。第一次发生的时候,我把它记为侥幸。现在它变得非常烦人,因为我没有心情卸载所有东西并每次重新安装,或者祈祷我能在引导脚本中想到我需要的所有东西。

我不包括任何错误消息,因为它们不是(或似乎不是)特别有价值;这只是要求已经满足了一遍又一遍地对我大喊大叫。

编辑#1我对这个问题进行了一点筛选,但仍然没有解决办法。我在同一个目录中创建了一个新的Flask项目,cd-ed进入其中,激活它的VirtualEnv,等等,然后运行哪个pip。这是新的VirtualEnv的点子——正确的点子。我停用了,cd-ed到我的原始项目,激活了VirtualEnv,并运行了哪个pip。它吐出了另一个项目——新项目的——pip。我rm-r-ed了新的测试项目,回到原来的测试项目,再次运行哪个pip,它吐出/usr/local/bin/pip。哦好啊

编辑#2:解决方案我可能没有找到确切的原因,但我确实找到了解决方案。bin/activatebin/pip脚本本身发生了某种改变,可能是因为意外地同时运行了两个VirtualNV(?)。也许这只是巧合,它在从未发生过的情况下连续发生了三次。不知道

Icat-ed激活,果然,在第42行,是

VIRTUAL_ENV="/Users/chaseries/blueprint/python/flask2/flask"

而不是

VIRTUAL_ENV="/Users/chaseries/blueprint/python/flask/flask"

我更改了它,再次运行哪个pip,得到了正确的结果。尝试安装时,得到一个堆栈跟踪,使我找到了bin/pip,发现它的shebang错误。将其更改为正确的路径,一切都会完美运行。


共有3个答案

严斌
2023-03-14

使用此链接(未使用pip在virtualenv中安装Python包)。

如果您的sheang是好的,那么确保您在安装到虚拟环境时不使用“sudo-H”。

江鸿羲
2023-03-14

如果您已经重命名了包含ENV虚拟环境目录的项目目录,请尝试清除ENV目录,重新创建虚拟环境并激活它并重新安装pip依赖项。

TL-DR;删除虚拟环境,创建新环境,激活它,并再次发出pip命令。

江温书
2023-03-14

我也有同样的问题。对我来说,原因是我的virtualenv在路径上有空间。

将virtualenv移动到无空间路径解决了这个问题。

 类似资料:
  • 问题内容: 使用在a中安装软件包将导致该软件包安装在global site- packages文件夹中,而不是在virtualenv文件夹中。这是我在OS X Mavericks(10.9.1)上设置Python3和virtualenv的方法: 我使用Homebrew安装了Python3: 更改了中的变量;添加了以下行: 运行返回(重新启动外壳程序之后)。 注意: 尽管仍然返回/ 。 使用安装:

  • 使用在中安装软件包会导致软件包安装在全局站点软件包文件夹中,而不是安装在virtualenv文件夹中。下面是我如何在OS X Mavericks(10.9.1)上设置Python3和virtualenv的: 我使用自制软件安装了Python3: 更改了中的变量;添加了以下行: 运行python3返回(重启shell后)。 注意:仍然返回/usr/bin/python。 使用安装的: 接下来,创建一

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

  • 问题内容: 因此,对于我的python项目,我有一个名为venv的virtualenv文件夹。 我可以跑: 它安装了项目所需的所有需求,其中之一是M2Crypto。安装它的唯一方法是通过apt-get: 然后如何将通过apt安装的此软件包添加到venv文件夹? 问题答案: 我到底做了什么:

  • 我有一个python包A,它依赖于另一个名为godot的私有包(托管在bitbucket上,应该通过git ssh协议访问)。在包A的设置中。py,我有以下代码: 我这里有两个问题: > 重新安装hghttps://bitbucket.org/pypa/setuptools#egg=setuptools 我几乎解决了这一点,但我想知道是否有其他方法可用?调用pip安装-rrequirements.

  • 问题内容: 我激活了已安装pip的virtualenv。我做了 和Django成功下载。现在,我想打开Django文件夹。文件夹在哪里? 通常它会在“下载”中,但是我不确定如果在virtualenv中使用pip安装它会在哪里。 问题答案: __与 virtualenv一起 使用时, pip 通常会在路径中安装软件包。 例如,我使用 Python 2.7创建了一个名为 venv_test 的测试vi