导入错误:没有名为“encodings”的模块

2025-01-06 08:32:00
admin
原创
123
摘要:问题描述:我最近重新安装了 ubuntu 并升级到 16.04 但无法使用 python:$ python manage.py runserver Could not find platform independent libraries <prefix> Could not find platf...

问题描述:

我最近重新安装了 ubuntu 并升级到 16.04 但无法使用 python:

$ python manage.py runserver
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

此时,python本身不起作用

$ python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

甚至这个建议也不再有效:

unset PYTHONHOME
unset PYTHONPATH

每次我用一种方法修复它,它都会再次出现。几个答案有助于暂时修复它,但不是永久的。我已经多次重新安装了 python 和 python3。我该怎么办?


解决方案 1:

对于 Python-3,请尝试删除虚拟环境文件。然后重置它。

rm -rf venv
virtualenv -p /usr/bin/python3 venv/
source venv/bin/activate
pip install -r requirements.txt

https://wiki.ubuntu.com/XenialXerus/ReleaseNotes#Python_3
编辑

解决方案 2:

适用于Windows10用户。

我在 Windows10 上使用 python3.4。我安装了 python3.5。我找不到 PYTHONPATH、PYTHONHOME 环境变量。如果我在 CMD 控制台中命令 python,它一直使用 python3.4。我删除了 python3.4。每当我在 CMD 控制台中命令 python 时,它都会开始显示如下错误。

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

我搜索了一下才找到我的问题。解决方案很简单。安装 python3.5 时,您可以自定义安装并在高级选项中选中将Python 添加到环境变量

我离开这里只是为了以防有人遇到类似的问题来这里,这样他们就不会浪费宝贵的时间来弄清楚。

解决方案 3:

我在 Windows7 下遇到了同样的问题。错误消息如下:

Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x000011f4 (most recent call first):

我已经安装了python 2.7(现已卸载),并且在安装python 3.6时选中了“在高级选项中将Python添加到环境变量”。 结果发现环境变量“ PYTHONHOME ”和“ PYTHONPATH ”仍然是python2.7。

最后我通过修改“ PYTHONHOME ”为 python3.6 安装路径并删除变量“ PYTHONPATH ”解决了这个问题。

解决方案 4:

对于 Windows7 上的相同问题

如果您的环境变量/系统变量设置不正确,您将看到如下错误:

Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'

Current thread 0x00001db4 (most recent call first):

修复这个问题其实很简单:

  1. 当您下载 Python3.x 版本并运行 .exe 文件时,它会为您提供一个选项来自定义要在系统中安装 Python 的位置。例如,我选择了这个位置:C:\Program Files\Python36

  2. 然后打开系统属性并转到“高级”选项卡(或者您可以简单地执行以下操作:转到开始>搜索“环境变量”>单击“编辑系统环境变量”。)在“高级”选项卡下,查找“环境变量”并单击它。将弹出另一个名为“环境变量”的窗口。

  3. 现在确保您的用户变量在“路径变量”中列出了正确的 Python 路径。在我的示例中,您应该看到C:\Program Files\Python36。如果您在那里找不到它,请通过选择路径变量字段并单击编辑来添加它。

  4. 最后一步是在同一窗口中仔细检查系统变量下的PYTHONHOMEPYTHONPATH字段。您应该看到与上述相同的路径。如果没有,也请将其添加到那里。

然后单击“确定”并返回 CMD 终端,然后尝试检查 python。现在问题应该已经解决。它对我有用。

解决方案 5:

我在迁移到 Ubuntu 17.10 期间遇到了这个错误,这解决了这个问题:

sudo dpkg-reconfigure python3

也许您必须关闭会话并重新连接。

解决方案 6:

我已经删除了rm -r /usr/lib/python*

dpkg -S '/usr/lib/python3*' | grep encodings

然后发现我需要libpython3.10-minimal

sudo apt-get install --reinstall libpython3.10-minimal

我终于跑了

sudo apt-get install --reinstall $(dpkg -S '/usr/lib/python3*' | cut -d ':' -f1 | cut -d ',' -f1 | sort | uniq | tr '
' ' ')
sudo apt-get install --reinstall $(dpkg -S '/usr/lib/python2*' | cut -d ':' -f1 | cut -d ',' -f1 | sort | uniq | tr '
' ' ')

要重新安装我删除的所有软件包

解决方案 7:

更新到 macOS Catalina 后,我遇到了这个问题“ModuleNotFoundError:没有名为‘encodings’的模块”。

我的系统中安装了多个版本的 Python。

从 macOS 系统中删除所有 python 版本(2.7 和 3.7.4)并重新安装最新的 python 3.8 对我来说是有效的。

要从 macOS 中删除 python,我按照这里的说明进行操作如何在 Mac OS X 10.6.4 上卸载 Python 2.7?

上面的链接适用于 python 2.7,但您也可以将其用于 3.7。

解决方案 8:

查看 /lib/python3.5,您将看到指向 python 库的断开链接。将其重新创建到工作目录。

下一个错误 -

./script/bin/pip3
Failed to import the site module
Traceback (most recent call last):
  File "/home/script/script/lib/python3.5/site.py", line 703, in <module>
    main()
  File "/home/script/script/lib/python3.5/site.py", line 683, in main
    paths_in_sys = addsitepackages(paths_in_sys)
  File "/home/script/script/lib/python3.5/site.py", line 282, in addsitepackages
    addsitedir(sitedir, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 204, in addsitedir
    addpackage(sitedir, name, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 173, in addpackage
    exec(line)
  File "<string>", line 1, in <module>
  File "/home/script/script/lib/python3.5/types.py", line 166, in <module>
    import functools as _functools
  File "/home/script/script/lib/python3.5/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/home/script/script/lib/python3.5/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'

像这样修复 - https://askubuntu.com/questions/907035/importerror-cannot-import-name-remove-dead-weakref

cd my-virtualenv-directory
virtualenv . --system-site-packages

解决方案 9:

我尝试了所有方法,删除了 PYTHONPATH 和 PYTHONHOME - 错误并没有消失。我忘记了我在 VirtualHost 的 wsgi 配置中的 WSGIDaemonProcess 下指定了 python-home 路径。我删除了它,错误就消失了。

解决方案 10:

我遇到了类似的问题。我的电脑上安装了 anaconda 和 python,我的 python 依赖项来自 Anaconda 目录。当我卸载 Anaconda 时,这个错误开始弹出。我添加了,PYTHONPATH但仍然没有运行。我检查了一下python -version并发现它仍然在走 anaconda 路径。我不得不手动删除 Anaconda3 目录,之后 python 开始从中获取依赖项PYTHONPATH

问题解决了!

解决方案 11:

当我将我的 mac 更新到 macOS Catalina 时遇到了同样的问题,同时使用pipenv。Pipenv 会为您创建并管理virtualenv,因此@Anoop-Malav 之前的建议是相同的,只需使用 pipenv 根据当前目录删除虚拟环境并重置它:

pipenv --rm
pipenv shell  # recreate a virtual env with your current Pipfile

解决方案 12:

就我而言,只需更改 anaconda 文件夹的权限即可:

sudo chmod -R u=rwx,g=rx,o=rx /path/to/anaconda   

解决方案 13:

当我尝试在 macOS Catalina 10.15.3 上启动 MySql Workbench 8.0 时出现此错误。

我通过在我的系统上安装 Python 3.7 解决了这个问题。

我猜将来当 Workbench 的版本大于 8 时,它将需要更新版本的 Python。只需查看错误中的库路径,您就会找到所需的版本。

解决方案 14:

因为这是谷歌的第一个结果,所以我只想为遇到 jail 问题的人添加以下信息:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007f079b16d740 (most recent call first):
Aborted (core dumped)

当尝试将 python 导入到 jail 时,您既需要将依赖项和 /usr/lib/pythonX.Y 链接到 [JAIL]/usr/lib/。希望这能有所帮助。

解决方案 15:

我在 Debian 服务器上遇到了同样的问题,对我来说,问题是我将项目放在了/root/mod_wsgi 无权访问的文件夹中。因此,我只需将项目移入/var/www/html/并更新我的 VirtualHost 配置即可。

解决方案 16:

就我而言,有效的方法如下:我将 conf 中的环境路径从 更改为/home/vinzee/.pyenv/versions/envname/bin//home/vinzee/.pyenv/versions/envname/然后它就起作用了。

似乎环境路径需要是虚拟环境根文件夹的路径(而不是的路径ROOT_VENV/bin/)。

您还可以按照其他人的建议尝试不使用尾随斜杠,但就我而言,无论有没有斜杠都可以正常工作。

解决方案 17:

似乎此错误可能由于多种原因而发生(考虑到这里有许多不同的答案)。

来说,问题与我的应用程序部署在虚拟环境中有关,并且pyvenv.cfg文件具有错误的权限。它必须由运行 uwsgi 的用户(在我的情况下是http)可写入。

解决方案 18:

cd /home/foobar/tools/
wget https://github.com/indygreg/python-build-standalone/releases/download/20241016/cpython-3.11.10+20241016-x86_64_v3-unknown-linux-gnu-pgo+lto-full.tar.zst
tar axvf cpython-3.11.10+20241016-x86_64_v3-unknown-linux-gnu-pgo+lto-full.tar.zst
mv python cpython-3.11.10
export PYTHONHOME=/home/foobar/tools/cpython-3.11.10/install
export PYTHONPATH=/home/foobar/tools/cpython-3.11.10/install
export PATH=/home/foobar/tools/cpython-3.11.10/install/bin:$PATH

解决方案 19:

只需转到文件 -> 设置 -> 在项目选项卡下选择项目解释器 -> 单击小齿轮图标 -> 添加 -> 系统解释器 -> 在下拉菜单中选择所需的 Python 版本

这似乎对我有用

解决方案 20:

我也能修复这个问题。原因是 PYTHONPATH 和 PYTHONHOME。

在终端中运行

   touch ~/.bash_profile
   open ~/.bash_profile

然后删除此文件所有无用的部分,并保存。我不知道这样做是否值得推荐!

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用