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

时间:2018-04-15 07:45:53

标签: python pip

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

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

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

非常感谢任何帮助。

enter image description here

16 个答案:

答案 0 :(得分:61)

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

pip issue: rollback

答案 1 :(得分:23)

首次运行

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仍然不支持主要 您可以通过以下命令选择降级您的点数版本:
python -m pip install --upgrade pip==9.0.3

答案 2 :(得分:21)

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

我的解决方法是改变

$foo

import pip
pip.main(...)

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

答案 3 :(得分:5)

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

easy_install pip==9.0.1

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

pip install pip==10....

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

再次尝试构建项目。

答案 4 :(得分:5)

这对我有帮助,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

对我有用。

答案 5 :(得分:3)

如果python -m pip install --upgrade pip==9.0.3不起作用,并且您正在使用Windows,

  1. 导航到此目录并将pip文件夹移动到其他位置。
  2. enter image description here

    1. 如果您打开IDE,请关闭它。

    2. 在Python 3上按'修复'

    3. enter image description here

      1. 您的IDE应该停止检测pip包并提示您安装它们。通过阻止自动更新来安装并保留最后一个稳定的pip版本。 enter image description here

答案 6 :(得分:2)

Pip 10.0。*不支持main。

你必须降级到pip 9.0.3。

答案 7 :(得分:2)

我的解决方案是检查pip的版本号,并正确使用导入正确的主要功能

    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])

答案 8 :(得分:1)

尝试此命令。

python -m pip install --user pip==9.0.1

答案 9 :(得分:0)

效果很好:

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

答案 10 :(得分:0)

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

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

DO

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

答案 11 :(得分:0)

不确定Windows。但对于Mac用户,请使用以下命令:

pip install --upgrade pip==9.0.3

答案 12 :(得分:0)

步骤1 卷曲https://bootstrap.pypa.io/get-pip.py -o get-pip.py 第2步 python get-pip.py

答案 13 :(得分:0)

我解决了升级到最新版本的问题

sudo pip install --upgrade pip

我的版本: /embrary/Python/2.7/site-packages/pip(python 2.7)中的 pip 18.1

答案 14 :(得分:0)

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

我通过以下命令解决了该问题:

ll

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

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

<html>
    <body>
        <form method="post">
            <input type="text" name="yymmdd">
            <input type="submit" value="Do it!">
        </form>
    </body>
</html>
<?php
$con = new PDO("mysql:host=localhost;dbname=acc_project_inv",'root','');

if (!empty($_POST["yymmdd"])) {
  $ymd = $_POST["yymmdd"];

  // You should add more checks here to make sure that the $ymd
  // variable only contains expected characters (since it's user
  // input)

  $sql = "CALL calcPro( :yyyymmdd )";
  $result = $con->prepare($sql);
  $result->setFetchMode(PDO::FETCH_ASSOC);
  $result->execute([":yyyymmdd" => $ymd]);
  if ($result) {
    echo "Calculated";
  } else {
    echo "Report Development Team";
  }
}

答案 15 :(得分:0)

对我来说,当我在site-packages文件夹中运行python时,发生了此问题。如果我在其他任何地方运行它,则不再是问题。