在我目前拥有python3.4之后,我试图在我的机器上安装python3.6。但是,安装后试图在python3.6下运行pip
给出了错误:
Traceback (most recent call last):
File "pip3", line 7, in <module>
from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 59, in <module>
from pip.log import logger
File "/usr/lib/python3/dist-packages/pip/log.py", line 9, in <module>
import colorama, pkg_resources
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1520, in <module>
register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "pip3", line 7, in <module>
from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 59, in <module>
from pip.log import logger
File "/usr/lib/python3/dist-packages/pip/log.py", line 9, in <module>
import colorama, pkg_resources
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1520, in <module>
register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
互联网上有几条关于遇到错误的评论,但是,它们都没有包含任何实际的解决方案建议。有谁知道如何解决这个问题?
答案 0 :(得分:22)
我设法解决了这个问题而没有从源头安装任何东西。 这就是我的所作所为:
首先,为Python3.x安装pip
(出于某种奇怪的原因,我没有...)
$ sudo apt-get install python3-pip
这是旧版本......
$ pip3 --version
pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.4)
...所以升级到最新的
$ sudo pip3 install --upgrade pip
现在好多了
$ sudo pip3 --version
pip 9.0.1 from /usr/local/lib/python3.4/dist-packages (python 3.4)
然后升级virtualenvvwrapper
$ sudo pip3 install --upgrade virtualenvwrapper
# ...
Successfully installed pbr-3.0.1 six-1.10.0 stevedore-1.22.0 virtualenv-15.1.0 virtualenv-clone-0.2.6 virtualenvwrapper-4.7.2
现在创建一个新的virtualenv:
$ mkvirtualenv -p `which python3.6` <VIRTUALENV_NAME>
pip
也有效:
$ pip install django
# ...
Successfully installed django-1.11.2 pytz-2017.2
$ pip freeze
Django==1.11.2
pytz==2017.2
注意:现在我意识到它比你要求的要多一些,但是(不知道你到底在哪里失败了)我猜你应该在第2步之后就行了。
答案 1 :(得分:14)
有同样的问题。从源代码安装python有帮助。
# Remove existing python 3.6 if installed with apt
$ sudo apt-get autoremove python3.6
# Get the source
$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
$ tar xvf Python-3.6.1.tar.xz
$ cd Python-3.6.1
# Configure and install
$ sudo ./configure
$ sudo make altinstall
# Success!
$ pip3.6 -V
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)
修改:我发现了pyenv。使安装和管理不同的python版本变得更加容易。试一试!
答案 2 :(得分:3)
我在我的Ubuntu 14.04服务器上用3.6替换了Python 3.4,我遇到了同样的问题。在我的情况下,原因似乎是一个古老的系统点:
$ pip --version
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)
我从未安装过python3-pip。相反,我解决了错误如下:
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
答案 3 :(得分:1)
我遇到了同样的问题。我的系统上似乎有pkg_resources
的两个版本。
/usr/local/lib/python3.6/site-packages/pkg_resources.py
/usr/lib/python3.6/site-packages/pkg_resources/__init__.py
移动旧版本,以便我的系统可以找到更新版本为我修复它。
mv /usr/local/lib/python3.6/site-packages/pkg_resources.py /usr/local/lib/python3.6/site-packages/pkg_resources.py.back
答案 4 :(得分:1)
我无法通过运行
解决它python3 get-pip.py
或
pip3 install --upgrade
因为我已经遇到过pkg_resources.py的问题。从Ubuntu重新安装python3-setuptools软件包没有帮助,因为这似乎仍然安装了最初与Ubuntu系统一起安装的版本(在我的情况下为3.4),但我可以通过手动安装setuptools来解决它
wget https://bootstrap.pypa.io/ez_setup.py -O - | python3
注意:python3指向我的新python版本3.6。如果不适合你那么你需要运行
wget https://bootstrap.pypa.io/ez_setup.py -O - | python3.6
答案 5 :(得分:0)
您可以使用此命令解决此错误。它将更新您的设置工具
python -m ensurepip --upgrade
答案 6 :(得分:0)
我终于通过运行解决了这个问题:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.6 get-pip.py --force-reinstall
此后,我可以使用以下命令安装特定于python3.6的软件包:
python3.6 -m pip install <packagename>
答案 7 :(得分:0)
好吧,看来我遇到了类似的问题,但是安装了distribute
作为依赖项的pip
。
我设法通过这种方式(在env下)安装了依赖项:
easy_install distribute==0.7.3
我遇到的一个错误:
File "/tmp/pip-build-lvtkw8zs/distribute/pkg_resources.py", line 1518, in <module>
register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-lvtkw8zs/distribute/
答案 8 :(得分:-2)
只需下载文件get-pip.py
here并使用此命令:
sudo python3 get-pip.py