Python PIP抛出错误 - ImportError:无法导入名称main

问题描述 投票:1回答:3

我是python / pip的新手,在这一点上,我只是在摆弄东西,试图安装我的环境,以便开始测试语言。

我已经正确安装了PIP,但是试图找到一些可以帮助我将解释器集成到Jetbrains PyCharm中的东西。我找到了一个名为PIPEnv(https://pypi.org/project/pipenv/)并安装它的东西,但现在它似乎打破了PIP

example@my-computer:~/hooks$ pip install pipenv
Collecting pipenv
Downloading https://files.pythonhosted.org/packages/bb/15/b155a5c0d19ce41609f50bb70a37e0de092b453ec4bd2eac59e53a2c3227/pipenv-2018.11.26-py2-none-any.whl (5.2MB)
100% |████████████████████████████████| 5.2MB 310kB/s 
Collecting enum34; python_version < "3" (from pipenv)
Downloading https://files.pythonhosted.org/packages/c5/db/e56e6b4bbac7c4a06de1c50de6fe1ef3810018ae11732a50f15f62c7d050/enum34-1.1.6-py2-none-any.whl
Collecting virtualenv (from pipenv)
Downloading https://files.pythonhosted.org/packages/7e/1b/6c00d57127608793e16e8b7f813e64d58a1938505c42fe190d1386ab41e1/virtualenv-16.4.0-py2.py3-none-any.whl (2.0MB)
100% |████████████████████████████████| 2.0MB 821kB/s 
Collecting typing; python_version < "3.5" (from pipenv)
Downloading https://files.pythonhosted.org/packages/cc/3e/29f92b7aeda5b078c86d14f550bf85cff809042e3429ace7af6193c3bc9f/typing-3.6.6-py2-none-any.whl
Collecting certifi (from pipenv)
Downloading https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.whl (154kB)
100% |████████████████████████████████| 163kB 8.6MB/s 
Collecting virtualenv-clone>=0.2.5 (from pipenv)
Downloading https://files.pythonhosted.org/packages/e3/d9/d9c56deb483c4d3289a00b12046e41428be64e8236fa210111a1f57cc42d/virtualenv_clone-0.5.1-py2.py3-none-any.whl
Collecting pip>=9.0.1 (from pipenv)
Downloading https://files.pythonhosted.org/packages/d7/41/34dd96bd33958e52cb4da2f1bf0818e396514fd4f4725a79199564cd0c20/pip-19.0.2-py2.py3-none-any.whl (1.4MB)
100% |████████████████████████████████| 1.4MB 1.2MB/s 
Collecting setuptools>=36.2.1 (from pipenv)
Downloading https://files.pythonhosted.org/packages/d1/6a/4b2fcefd2ea0868810e92d519dacac1ddc64a2e53ba9e3422c3b62b378a6/setuptools-40.8.0-py2.py3-none-any.whl (575kB)
100% |████████████████████████████████| 583kB 2.7MB/s 
Installing collected packages: enum34, virtualenv, typing, certifi, virtualenv-clone, pip, setuptools, pipenv
Successfully installed certifi-2018.11.29 enum34-1.1.6 pip-19.0.2 pipenv-2018.11.26 setuptools-40.8.0 typing-3.6.6 virtualenv-16.4.0 virtualenv-clone-0.5.1
example@my-computer:~/hooks$ pip list
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
from pip import main
ImportError: cannot import name main

任何帮助都会很棒。

python pip
3个回答
2
投票

您可以尝试卸载pip和pip env。

然后重新安装pip,然后尝试再次安装pipenv。如果这次它不起作用那么你需要使用pip和virtualenv而不是pip env。

卸载它们,这次安装pip和virtualenv 您可以配置pycharm以使用virtualenv。 无论如何,这些命令对我有用 用于卸载

python3 -m pip3 uninstall pip3



sudo -H pip3 install --upgrade pip
sudo -H pip3 install pipenv

现在尝试执行'pipenv' 如果仍然无效,请尝试升级python3。 如果你仍在使用python2.7,那么用pip替换pip3


0
投票

我们不使用PIPEnv,但发现最新的pip版本在我们的构建系统中的一些地方导致导入错误。由于自上次成功构建以来代码没有改变,我强烈怀疑这个pip版本(19.0.2)在某种程度上被破坏/不兼容。我们的解决方案是回到19.0.1,它已经工作了一段时间。我们将在virtualenv中执行此操作,而不是在系统级别。


0
投票

我在这篇文章(AttributeError: Module Pip has no attribute 'main')中发现了一个补丁,用于在某些版本的pip中迁移到最新的pup版本中的导入问题。制作代码以支持更新版本和旧版本,导入pip'main'模块的解决方法结果如下:

if hasattr(pip,'main'): pipm=pip.main else: from pip import _internal pipm=pip._internal.main

© www.soinside.com 2019 - 2024. All rights reserved.