AttributeError:模块Pip没有属性'main'

Kis*_*tel 54 python pip

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

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

现在,我知道这个构建应该成功,因为它是一个开源项目,但我一直在努力解决依赖问题pip.main().

任何帮助将不胜感激.

在此输入图像描述

eri*_*eda 68

python3 -m pip install --user --upgrade pip==9.0.3
Run Code Online (Sandbox Code Playgroud)

pip问题:回滚

  • 如果Pip存在问题,那么不要经常尝试推动用户将PIP升级到损坏的版本是不是很好?:您使用的是pip版本9.0.3,但版本10.0.1可用. (8认同)
  • @Gulzar,如果安装了多个版本,则显式使用 python 版本是明智的。对于某些人来说,python 的别名会指向 python2.. (2认同)

mdo*_*011 27

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

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

import pip
pip.main(...)
Run Code Online (Sandbox Code Playgroud)

from pip._internal import main
main(...)
Run Code Online (Sandbox Code Playgroud)

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


Luk*_*SWK 26

第一次运行

import pip
pip.__version__
Run Code Online (Sandbox Code Playgroud)

如果结果为'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
您可以通过以下命令选择DOWNGRADE您的pip版本:
python -m pip install --upgrade pip==9.0.3


Shu*_*Tee 6

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

easy_install pip==9.0.1
Run Code Online (Sandbox Code Playgroud)

如果成功,pip应该立即行动.然后你可以继续安装pip你想要的任何其他版本:

pip install pip==10....
Run Code Online (Sandbox Code Playgroud)

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

尝试重新构建项目.


小智 6

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

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
Run Code Online (Sandbox Code Playgroud)

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

python3 get-pip.py
Run Code Online (Sandbox Code Playgroud)

这个对我有用.


小智 6

我的解决办法是检查pip的版本号,正确使用import正确的main函数

import pip

if int(pip.__version__.split('.')[0])>9:
    from pip._internal import main
else:
    from pip import main
def install(package):
    main(['install', package])
Run Code Online (Sandbox Code Playgroud)