python install方法 - AttributeError:模块Pip没有属性'main'




pip是什么 windows安装 (13)

我正在尝试为一个名为Zulip的开源项目构建python api,并且我一直遇到如下截图所示的相同问题。

我正在运行python3,我的pip版本是10.0.0。 有问题的文件是setup.py ,而搞乱的代码是访问pip.main()属性来安装软件包的时候。

现在,我知道这个构建应该成功,因为它是一个开源项目,但我已经尝试了几个小时来修复关于pip.main()的依赖性问题。

任何帮助将不胜感激。


Answers

关于Windows不确定。 但对于mac用户,请使用:

pip install --upgrade pip==9.0.3

第一次运行

import pip
pip.__version__

如果结果为'10 .0.0',则表示您已成功安装pip
由于pip 10.0.0不再支持pip.main(),你可能会觉得这很有帮助
https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program
使用import subprocess subprocess.check_call(["python", '-m', 'pip', 'install', 'pkg']) # install pkg subprocess.check_call(["python", '-m', 'pip', 'install',"--upgrade", 'pkg']) # upgrade pkg

编辑:pip 10.0.1仍然不支持main
您可以通过以下命令选择降级您的点数版本:
python -m pip install --upgrade pip==9.0.3



似乎pip做了一个重构并将main移到了内部。 这里有一个全面的讨论: https//github.com/pypa/pip/issues/5240

对我而言,解决方法就是改变

import pip
pip.main(...)

from pip._internal import main
main(...)

我建议通过讨论阅读,我不确定这是最好的方法,但它适用于我的目的。


这有助于我, https://pip.pypa.io/en/stable/installing/

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

如果您使用的是python3而未将其设置为默认值。 做这个,

python3 get-pip.py

这个对我有用。


要验证是否存在pip安装问题,请尝试使用easy_install安装早期版本的pip:

easy_install pip==9.0.1

如果成功, pip现在应该正常工作。 然后你可以继续安装你想要的任何其他版本的pip

pip install pip==10....

或者您可以使用version 9.0.1 ,因为您的项目需要版本> = 9.0。

尝试重新构建项目。


我修复了这个问题升级到最新版本

sudo pip install --upgrade pip

我的版本: 来自/Library/Python/2.7/site-packages/pip(python 2.7)的pip 18.1


效果很好:

 py -m pip install --user --upgrade pip==9.0.3

我在Windows上使用onaconda3 4.4.0(python 3.6)上的pip时遇到了同样的错误。

我通过以下命令修复了问题:

easy_install pip==18.*  ### installing the latest version pip

或者如果需要更低版本的pip,请在命令中提及相同的内容。

或者您可以尝试安装较低版本,然后将其升级到最新版本,如下所示:

easy_install pip==9.0.1

easy_install --upgrade pip

Pip 10.0。*不支持main。

你必须降级到点9.0.3。



编辑文件:第108行中的C:\ Users \ kpate \ hw6 \ python-zulip-api \ zulip_bots \ setup.py

rcode = pip.main(['install', '-r', req_path, '--quiet'])

rcode = getattr(pip, '_main', pip.main)(['install', '-r', req_path, '--quiet'])´

我相信如果你已经安装了一个软件包,pip将不会用另一个版本覆盖它。 使用-I忽略以前的版本。





python pip