Python PIP引发错误-ImportError:无法导入名称主要

时间:2019-02-10 04:37:26

标签: python pip

我是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

任何帮助都会很棒。

3 个答案:

答案 0 :(得分:1)

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

  

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

卸载它们,这次安装pip和virtualenv
您可以将pycharm配置为与virtualenv一起使用。
无论如何,这些命令对我来说都是有效的
卸载

python3 -m pip3 uninstall pip3



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

现在尝试执行'pipenv'
如果仍然无法正常工作,请尝试升级python3。
如果您仍在使用python2.7,则将pip3替换为pip

答案 1 :(得分:0)

我们不使用PIPEnv,但是发现最新的pip版本在我们的构建系统中的某些地方导致导入错误。由于自上次成功构建以来代码未更改,因此我强烈怀疑此pip版本(19.0.2)已损坏/不兼容。 对我们来说,解决方案将返回到19.0.1,它已经运行了一段时间。我们将在virtualenv内部而不是在系统级别进行此操作。

答案 2 :(得分: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