Python错误-“;导入错误:无法导入名称';地区'&引用;
我在Ubuntu 16.04上,我得到:Python错误-“;导入错误:无法导入名称';地区'&引用;,python,linux,Python,Linux,我在Ubuntu 16.04上,我得到: Traceback (most recent call last): File "/home/omermazig/.virtualenvs/fixi/bin/pip", line 7, in <module> from pip import main File "/home/omermazig/.virtualenvs/fixi/lib/python3.6/site-packages/pip/__init__.py", lin
Traceback (most recent call last):
File "/home/omermazig/.virtualenvs/fixi/bin/pip", line 7, in <module>
from pip import main
File "/home/omermazig/.virtualenvs/fixi/lib/python3.6/site-packages/pip/__init__.py", line 26, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/home/omermazig/.virtualenvs/fixi/lib/python3.6/site-packages/pip/utils/__init__.py", line 23, in <module>
from pip.locations import (
File "/home/omermazig/.virtualenvs/fixi/lib/python3.6/site-packages/pip/locations.py", line 9, in <module>
from distutils import sysconfig
File "/home/omermazig/.virtualenvs/fixi/lib/python3.6/distutils/__init__.py", line 25, in <module>
from distutils import dist, sysconfig
ImportError: cannot import name 'dist'
回溯(最近一次呼叫最后一次):
文件“/home/omermazig/.virtualenvs/fixi/bin/pip”,第7行,在
从pip导入主
文件“/home/omermazig/.virtualenvs/fixi/lib/python3.6/site packages/pip/\uuuuu init\uuuuuuuu.py”,第26行,在
从pip.utils import get_installed_发行版,get_prog
文件“/home/omermazig/.virtualenvs/fixi/lib/python3.6/site packages/pip/utils/_init__.py”,第23行,在
从pip.locations导入(
文件“/home/omermazig/.virtualenvs/fixi/lib/python3.6/site packages/pip/locations.py”,第9行,在
从distutils导入sysconfig
文件“/home/omermazig/.virtualenvs/fixi/lib/python3.6/distutils/\uuuu init\uuuu.py”,第25行,在
从distutils导入dist,sysconfig
ImportError:无法导入名称“dist”
当我用python运行任何东西时。这特别是为了尝试运行“pip freeze”。该怎么办?看看这个(类似的问题):
可能的解决方案:
- 从下载Python源代码
- 解压缩源代码
- 安装以下依赖项: sudo apt get install zlib1g dev(编译Python所需)
- 并安装:
- 编译并安装Python:
- 应安装带有Pip的Python 3.6
sudo apt install python3-distutils
因为每次我每六个月更新一次我的ubuntu版本都会遇到这个问题,然后偶然发现完全相同的结果,这是我的解决方案 如果此处列出的其他解决方案不起作用(安装
python3 distutils
),可能是因为系统和virtualenv之间的python版本不同
简单的解决办法是销毁你的virtualenv,然后从头开始重新创建它。我的情况是在升级Ubuntu 18->19时。 因此,它重新安装了python,我需要做的是:
在Ubuntu上安装Python3.8之后,我遇到了这个问题(我的版本是16.04)
distutils
$ python3 -c "from distutils import sysconfig"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig' from 'distutils' (/usr/lib/python3.8/distutils/__init__.py)
$ sudo apt install python3-distutils
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package python3-distutils
distutil
包
$ apt list *distutils*
Listing... Done
python-distutils-extra/xenial,xenial 2.39-1 all
python-stsci.distutils/xenial,xenial 0.3.7-4 all
python3-distutils-extra/xenial,xenial 2.39-1 all
python3-stsci.distutils/xenial,xenial 0.3.7-4 all
python3.7-distutils/xenial,xenial 3.7.8-1+xenial1 all
python3.8-distutils/xenial,xenial 3.8.3-1+xenial1 all
python3.9-distutils/xenial,xenial 3.9.0~b4-1+xenial1 all
python3.8-distutils
,它成功了
$ sudo apt-get install -y python3.8-distutils
解决:我在两年前安装的一个虚拟环境中,使用python3.7解决了这个问题 从venv的distutils import dist,sysconfig“运行pip3或python3.7-c”,我收到错误ImportError:无法导入名称“dist” 使用系统Python3.9,此错误将消失
我解决了将/usr/lib/python3.9/distutils复制到python3.7虚拟环境中的问题。sudo-apt-get-install-python3-distutilssudo-apt-get-work-for-me!感谢为我修复了导入错误(使用python3.6的virtualenv中的Ubuntu 16.04)。在virtualenv中没有Ubuntu。你一定是说在Ubuntu 16.04上运行python3.6的virtualenv“python3 distutils已经是最新版本(3.7.3-1ubuntu1)”并没有解决问题(这是在virtualenv中发生的,而不是在系统python中)是的,我刚从19.10升级到20.04,同样的情况也发生在我身上。@Comm4nd0这里也一样。但我也无法从旧版本创建requirements.txt!应该在Ubuntu升级之前完成!对我有用!还必须在
[requires]中更改python版本
我的Pipfile的一节。在Ubuntu中从源代码编译更新和分发集成方面的东西并不理想。但是如果系统中仍然安装了python-3.7
,它仍然会被破坏,并且无法导入缺少的distutils/dist.py
文件:-($sudo-apt-get-install-y python3.8-distutils工作)。
$ apt list *distutils*
Listing... Done
python-distutils-extra/xenial,xenial 2.39-1 all
python-stsci.distutils/xenial,xenial 0.3.7-4 all
python3-distutils-extra/xenial,xenial 2.39-1 all
python3-stsci.distutils/xenial,xenial 0.3.7-4 all
python3.7-distutils/xenial,xenial 3.7.8-1+xenial1 all
python3.8-distutils/xenial,xenial 3.8.3-1+xenial1 all
python3.9-distutils/xenial,xenial 3.9.0~b4-1+xenial1 all
$ sudo apt-get install -y python3.8-distutils