attributeerror: модуль pip не имеет атрибута 'main'

<p>я пытаюсь создать python api для проекта с открытым исходным кодом под названием zulip, и я продолжаю сталкиваться с той же проблемой, как показано на скриншоте ниже.</p><p>я использую python3 и моя версия пипа 10.0.0. файл, о котором идет речь, - это <code>setup.py</code>, а код, который запутывается, - это доступ к атрибуту <code>pip.main()</code> для установки пакета.</p><p>теперь я знаю, что эта сборка должна быть успешной, потому что это проект с открытым исходным кодом, но я часами пытался решить проблему зависимости, связанную с <code>pip.main()</code>.</p><p>любая помощь будет принята с благодарностью. </p><p> <a href="https://i.stack.imgur.com/blm4l.jpg"> <img src="https://i.stack.imgur.com/blm4l.jpg" alt="enter image description here"> </a> </p>

<pre><code>python3 -m pip install --user --upgrade pip==9.0.3 </code></pre><p> <a href="https://github.com/pypa/pip/issues/5240">результат пипса: откат</a> </p>

<p>первый забег</p><pre><code>import pip pip.\_\_version\_\_ </code></pre><p>если результат равен «10 .0.0», это означает, что вы успешно установили pip <br> так как pip 10.0.0 больше не поддерживает pip.main (), вы можете найти это полезным <br> <a href="https://pip.pypa.io/en/latest/user\_guide/#using-pip-from-your-program">https://pip.pypa.io/en/latest/user\_guide/#using-pip-from-your-program</a> <br> используйте что-то вроде <code> import subprocess subprocess.check\_call(["python", '-m', 'pip', 'install', 'pkg']) # install pkg subprocess.check\_call(["python", '-m', 'pip', 'install',"--upgrade", 'pkg']) # upgrade pkg </code></p><hr><p>правка: пип 10.0.1 по-прежнему не поддерживает основной <br> вы можете выбрать скачать версию своего пипа с помощью следующей команды: <br> <code>python -m pip install --upgrade pip==9.0.3</code></p>

<p>похоже, что пип сделал рефакторинг и переместил основной на внутренний. здесь подробно обсуждается это: <a href="https://github.com/pypa/pip/issues/5240">https://github.com/pypa/pip/issues/5240</a> </p><p>обходной путь для меня должен был изменить</p><pre><code>import pip pip.main(...) </code></pre><p>в</p><pre><code>from pip.\_internal import main main(...) </code></pre><p>я рекомендую прочитать обсуждение, я не уверен, что это лучший подход, но он работал для моих целей. </p>

<p>это помогает мне, <a href="https://pip.pypa.io/en/stable/installing/">https://pip.pypa.io/en/stable/install/</a> </p><pre><code>curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py </code></pre><p>если вы используете python3 и не устанавливаете его по умолчанию. сделай это,</p><pre><code>python3 get-pip.py </code></pre><p>меня устраивает.</p>

<p>чтобы проверить, является ли ваша проблема с установкой <code>pip</code>, попробуйте использовать <code>easy\_install</code> для установки более ранней версии pip:</p><pre><code>easy\_install pip==9.0.1 </code></pre><p>если это удастся, <code>pip</code> должен работать сейчас. затем вы можете продолжить установку любой другой версии <code>pip</code>:</p><pre><code>pip install pip==10.... </code></pre><p>или вы можете просто остаться с <code>version 9.0.1</code>, поскольку для вашего проекта требуется версия> = 9.0.</p><p>попробуйте построить свой проект снова.</p>

<p>если <code>python -m pip install --upgrade pip==9.0.3</code> не работает, и вы используете windows,</p><ol> <li>перейдите в этот каталог и переместите папки pip в другое место. </li> </ol><p> <a href="https://i.stack.imgur.com/cli8u.jpg"> <img src="https://i.stack.imgur.com/cli8u.jpg" alt="enter image description here"> </a> </p><ol start="2"> <li><p>закройте свой ide, если он у вас открыт.</p></li> <li><p>нажмите <strong>'repair'</strong> на python 3.</p></li> </ol><p> <a href="https://i.stack.imgur.com/umha0.jpg"> <img src="https://i.stack.imgur.com/umha0.jpg" alt="enter image description here"> </a> </p><ol start="4"> <li>ваш ide должен перестать обнаруживать пакеты pip и предлагать вам установить их. установите и сохраните последнюю стабильную версию pip, заблокировав автоматические обновления . <a href="https://i.stack.imgur.com/hrbmb.jpg"> <img src="https://i.stack.imgur.com/hrbmb.jpg" alt="enter image description here"> </a> </li> </ol>

<p>пип 10.0. * не поддерживает main.</p><p>вы должны понизить рейтинг до уровня 9.0.3.</p>

<p>не уверен насчет windows. но для пользователей mac используйте это:</p><pre><code>pip install --upgrade pip==9.0.3 </code></pre>

<p>мое решение состоит в том, чтобы проверить номер версии pip и правильно использовать функцию импорта правильной основной</p><pre><code> 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]) </code></pre>

<p>шаг 1 curl <a href="https://bootstrap.pypa.io/get-pip.py">https://bootstrap.pypa.io/get-pip.py</a> -o get-pip.py step2 python get-pip.py</p>

<p>я исправил эту проблему при обновлении до последней версии</p><pre><code>sudo pip install --upgrade pip </code></pre><p>моя версия: <em> pip 18.1 из /library/python/2.7/site-packages/pip (python 2.7) </em></p>

<p>отредактируйте файл: c:\users\kpate\hw6\python-zulip-api\zulip\_bots\setup.py в строке 108</p><p>в</p><pre><code>rcode = pip.main(['install', '-r', req\_path, '--quiet']) </code></pre><p>делать</p><pre><code>rcode = getattr(pip, '\_main', pip.main)(['install', '-r', req\_path, '--quiet'])´ </code></pre>

<p>я столкнулся с той же ошибкой при использовании pip на anaconda3 4.4.0 (python 3.6) на windows.</p><p>я исправил проблему с помощью следующей команды:</p><pre><code>easy\_install pip==18.* ### installing the latest version pip </code></pre><p>или, если требуется более низкая версия, укажите это в команде.</p><p>или вы можете попробовать установить более низкую версию, а затем обновить ее до последней версии следующим образом:</p><pre><code>easy\_install pip==9.0.1 easy\_install --upgrade pip </code></pre>

<p>это работает хорошо:</p><pre><code> py -m pip install --user --upgrade pip==9.0.3 </code></pre>