在virtualenv破坏的pip安装

时间:2017-10-05 17:16:08

标签: python

我从virtualenv的pip安装中得到了这个错误:

struct X1{};
struct X2{};
struct Y:X1,X2{};

struct A {
  virtual void foo( Y* ) = 0;
  virtual ~A() {}
}
struct B1:A {
  virtual void foo( Y* ptr ) final override { foo( static_cast<X1*>(ptr) ); }
  virtual void foo( X1* ) = 0;
}
struct B2:A {
  virtual void foo( Y* ptr ) final override { foo( static_cast<X2*>(ptr) ); }
  virtual void foo( X2* ) = 0;
}

虚拟环境的python工作,系统python和pip工作(所有python3)。

3 个答案:

答案 0 :(得分:2)

原来 virtualenv硬链接python可执行文件到系统python ,所以当我升级python时,它与虚拟env的pip安装不一致。

在此处发布以供其他人查找,以防万一发生这种情况。

解决方法是擦除pyenv文件夹,然后重新安装一个新的virtualenv(如果你一直在使用requirements.txt文件,这就是虚拟环境的目的!

答案 1 :(得分:0)

首先,尝试更新pip

pip install --upgrade pip

如果这不能解决问题,我会尝试卸载pip然后重新安装。

删除try:

sudo pip uninstall pip

然后重新安装。

pip install -U pip setuptools

我也假设你正在使用linux或mac。在Windows命令上有所不同。

答案 2 :(得分:0)

根据pip documentation,您可以在虚拟环境激活时键入以下命令在虚拟环境中安装pip:

python -m ensurepip --upgrade

请注意,ensurepip 是一个内置的 Python 模块,用于在您的 Python 环境中安装 pip。

如果您不想启动全新的虚拟环境并且希望保留您的依赖项,则可以使用此解决方案