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

Virtualenv不包括pip

朱刚捷
2023-03-14

我正试图在Mac OS X El Capitan上使用virtualenv创建一个虚拟环境。我已经用brew安装了Python 2.7.11,默认情况下包括pipwheelsetuptools

然而,当我尝试安装虚拟环境以下说明在留档或从任何其他资源,我得到几个问题:

  1. pip完成其工作后,virtualenv可执行文件未放置在/usr/local/bin中,因此我需要手动ln-s它(这可能表明此步骤的安装有问题)
  2. 运行virtualenv venv后,它会创建新的环境,从brew-安装中捕获Python 2.7.11,但是:bin文件夹中没有pip。这意味着,如果我尝试哪个pip,激活venv,它将返回pip-/usr/local/bin/pip,而不是/path/to/venv/bin/pip

因此,在venv内部安装软件包使用全局pip,并将它们安装到全局站点软件包中,而不是安装在venv内部,这与环境应该做的恰恰相反。

你能建议什么可能是错误的以及如何解决它吗?

编辑:值得一提的是,我曾经在我的计算机上安装过其他版本的Python,我最近删除了它,正如在这个回答中所描述的那样。可能是它导致了问题,需要进行更彻底的清洁。


共有3个答案

柯学
2023-03-14

我在运行虚拟环境时遇到了这个问题:“重要错误:没有名为pip的模块。”我的解决方案是降级虚拟环境。我有16.2.0。

柯立果
2023-03-14
匿名用户

  1. pip完成其工作后,virtualenv可执行文件未放置在/usr/local/bin中,因此我需要手动ln-s它(这可能表明此步骤的安装有问题)

不要那样做。这只会隐藏错误,而不会解决问题。以下是如何调试此类问题的简短指南:

>

接下来,检查哪个-a pip。同样,第一条路径应该是/usr/local/bin/pip。如果没有,请运行python-m ensurepip并重新检查。

现在使用pip install virtualenv安装virtualenv,然后检查which-a virtualenv的输出。第一个路径应该是/usr/local/bin/virtualenv,如果不是,请检查env | grep PYTHON的输出是否有意外的环境变量。

最后检查virtualenv--version的输出,确保您拥有最新版本。

邢灿
2023-03-14

尝试删除或重命名主目录中的.pydistutils.cfg文件,例如用mv~/重命名。pydistutils.cfg~/oldpydistutils.cfg

为了帮助其他人,我在这里给出了一个详细的答案,但最初的功劳归于这个答案。如果您知道.pydistutils.cfg中的具体原因,请告诉我!

我也遇到了同样的问题:我的虚拟环境是在没有pip本地副本的情况下创建的,尽管它们有python的本地副本。这意味着从安装到全局包位置的虚拟环境中使用$pip,并且对环境的python不可见。

我是如何在我的机器上诊断的:

  1. 我使用$virtualenv env
  2. 使用$source env/bin/activate
  3. 选中的python位置:使用输出/Users运行(env)$whichpython/

要检查软件包的去向,我们可以尝试在虚拟环境中安装软件包:

仔细检查,我们发现环境的/bin文件夹中没有Pip:

$ls env/bin激活activate.fishpython python2activate.cshactivate_this.pypython-config python2.7

因此,当系统找到本地python版本时,它无法找到本地pip来使用并遍历$PATH。它最终使用了/usr/local/bin中的pip,使我无法在虚拟环境中本地安装软件包。

以下是我尝试的:-重新安装pythonbrew卸载python,然后进行brew升级brew安装python——从源代码构建-使用get-pip.py命令安装pip,如pip文档中所述

以下是我排除的情况:-我没有使用sudo-pip…,这在另一个问题中导致了类似的问题,并且在这个Python/pip安装上任何时候都没有这样做-我的虚拟环境没有显示pip的本地安装,就像在这些类似的问题中一样:这是针对Windows的,这是针对Mac-OS-X的。

最终,我发现删除~/.pydistutils.cfg文件解决了这个问题,允许有自己本地pip的新虚拟环境。我的~/.pydistutils.cfg文件的内容是:

[global]
verbose=1

[install]
install-scripts=$HOME/bin

[easy_install]
install-scripts=$HOME/bin

简单地重命名~/。pydistutils.cfg文件似乎可以解决这个问题:虽然这个文件是由家庭下载安装创建的,但是这个文件中的一些设置可能与虚拟环境不兼容。虽然删除此文件对我的系统没有任何不良影响,但在将带有pip的包安装到全局环境时,您可能需要使用--user标志(例如$pip安装--user HTTPServer)。这里有更多的细节。pydistutils.cfg如果你想根据你的需求定制它。

 类似资料:
  • 我有最新的PyCharm CE,并且正在将其与一起使用。我已经将解释器定义为中的解释器。PyCharm中的项目解释器窗口列出了我安装的所有软件包。我通过运行

  • HTML不支持在HTML页面中嵌入HTML页面。 要实现此功能,我们可以使用以下选项之一 - Using Ajax - 进行服务器调用以获取相应的HTML页面并将其设置在HTML控件的innerHTML中。 Using Server Side Includes - JSP,PHP和其他Web端服务器技术可以在动态页面中包含HTML页面。 使用AngularJS,我们可以使用ng-include指令

  • 当node_module库导入索引文件时,webpack为什么不在构建中包含这些库? webpack对我来说仍然是一种黑色的艺术,我还没有完全掌握,所以下面是我试图实现的一个解释。 我正在构建一个测试应用程序,以在AWS Lambda节点服务器上作为无服务器代码运行。目标是通过在服务器上有一个或多个块并且没有node_modules文件夹,使部署包尽可能小。 我正在用TypescriptV3编写文

  • 我一直在寻找在中包含FXML和图像的适当方法,以便将它们构建到JAR中。我看过这里,试过它,但它仍然不起作用。 抛出此错误: 以下是(Github): 下面是gui.java(Github): stacktrace表示导致了错误 在外面的树,他们都不在,我已经摆弄了几个小时,试图解决这个问题。如有任何帮助,将不胜感激。 如果需要更多信息,这里还有Github存储库

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

  • 我有这个BST的问题,我想在Java解决,但我不知道为什么它不起作用。问题就在这里: > 二叉搜索树(BST)是一种二叉树,其中每个节点的值大于或等于该节点左子树中所有节点的值,而小于该节点右子树中所有节点的值。 编写一个函数,检查给定的二叉搜索树是否包含给定的值。 例如,对于以下树: n1(值:1,left:null,right:null)n2(值:2,left:n1,right:n3)n3(值