【问题标题】:AttributeError: Module Pip has no attribute 'main'AttributeError:模块 Pip 没有属性“主”
【发布时间】:2018-04-15 07:45:53
【问题描述】:

我正在尝试为名为 Zulip 的开源项目构建 python api,但我一直遇到与下面的屏幕截图所示相同的问题。

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

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

任何帮助将不胜感激。

【问题讨论】:

标签: python pip


【解决方案1】:

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

我的解决方法是改变

import pip
pip.main(...)

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

我建议通读讨论,我不确定这是最好的方法,但它对我的目的有效。

【讨论】:

    【解决方案2】:
    python3 -m pip install --user --upgrade pip==9.0.3
    

    pip issue: rollback

    【讨论】:

    • 如果 Pip 出现问题,最好不要不断尝试推动用户将 PIP 升级到损坏的版本?:您使用的是 pip 版本 9.0.3,但是版本 10.0。 1 个可用。
    • 另外,python3 现在只是 python
    • 现在最新版本是19.2.3 所以python3 -m pip install --user --upgrade pip==19.2.3 对我有用
    • @Gulzar 如果安装了多个版本,明智的做法是明确使用 python 版本。对于某些 python 的别名将指向 python2..
    【解决方案3】:

    我的解决办法是检查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])
    

    【讨论】:

      【解决方案4】:

      第一次运行

      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
      您可以通过以下命令选择降级您的 pip 版本:
      python -m pip install --upgrade pip==9.0.3

      【讨论】:

      • 这本身在我的 MacOS 上不起作用。而是将所有 pip* 文件夹从我的 /site-packages/ 目录中取出,然后重新安装 Python3.6。
      • 我在评论中漏掉了关键字“move”:将所有 pip* 文件夹移出 '/site-packages/'...
      【解决方案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
      

      它对我有用。

      【讨论】:

      • 这个对我有用。我的 pip3 成功升级到最新的 pip-18.0。并且命令 pip3 在我的终端中正常工作。
      • 这是唯一对我有用的解决方案。谢谢!
      【解决方案6】:

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

      easy_install pip==9.0.1
      

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

      pip install pip==10....
      

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

      再次尝试构建您的项目。

      【讨论】:

        【解决方案7】:

        试试这个命令。

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

        【讨论】:

          【解决方案8】:

          Pip 10.0.* 不支持 main.

          你必须降级到 pip 9.0.3。

          【讨论】:

            【解决方案9】:

            如果python -m pip install --upgrade pip==9.0.3 不起作用,而您使用的是 Windows,

            1. 导航到此目录并将 pip 文件夹移至其他位置。

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

            2. 在 Python 3 上按 'Repair'

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

            【讨论】:

              【解决方案10】:

              我在 windows 上的 anaconda3 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
              

              【讨论】:

                【解决方案11】:

                效果很好:

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

                【讨论】:

                  【解决方案12】:

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

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

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

                  【讨论】:

                    【解决方案13】:

                    不确定 Windows。但是对于 mac 用户,使用这个:

                    pip install --upgrade pip==9.0.3
                    

                    【讨论】:

                      【解决方案14】:

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

                      sudo pip install --upgrade pip
                      

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

                      【讨论】:

                        【解决方案15】:

                        对我来说,当我在我的站点包文件夹中运行 python 时发生了这个问题。如果我在其他任何地方运行它,它就不再是问题了。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2018-09-24
                          • 1970-01-01
                          • 2015-05-16
                          • 2014-04-21
                          • 2018-04-14
                          • 2019-02-18
                          • 1970-01-01
                          相关资源
                          最近更新 更多