Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误-“;导入错误:无法导入名称';地区'&引用;_Python_Linux - Fatal编程技术网

Python错误-“;导入错误:无法导入名称';地区'&引用;

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

我在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", 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所需)

  • 并安装:

sudo apt get install libreadline-gplv2-dev libncursesw5 dev libssl dev libsqlite3 dev tk dev libgdbm dev libc6 dev libbz2 dev(Pip发出SSL请求所需)

  • 编译并安装Python:
/配置

制造

安装

  • 应安装带有Pip的Python 3.6
完全归功于jonbesga。

试试看

sudo apt install python3-distutils

因为每次我每六个月更新一次我的ubuntu版本都会遇到这个问题,然后偶然发现完全相同的结果,这是我的解决方案

如果此处列出的其他解决方案不起作用(安装
python3 distutils
),可能是因为系统和virtualenv之间的python版本不同


简单的解决办法是销毁你的virtualenv,然后从头开始重新创建它。

我的情况是在升级Ubuntu 18->19时。 因此,它重新安装了python,我需要做的是:

  • 删除旧的虚拟环境

  • 创建一个新的

  • 通过pip将需求安装到it中


  • 在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
    
  • 列出可用的distutils
  • 帮助的是使用regexp列出所有
    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
    
  • 安装正确的distutils包
  • 对于我的python3.8,我选择了
    python3.8-distutils
    ,它成功了

    $ sudo apt-get install -y python3.8-distutils
    

    解决:我在两年前安装的一个虚拟环境中,使用python3.7解决了这个问题

    从venv的distutils import dist,sysconfig“运行pip3python3.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