ImportError: No module named 'encodings'
ImportError: No module named 'encodings'
我最近重新安装了 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。我可以从这里做什么?
对于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
编辑 fo
对于 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添加到环境变量。
我离开这里是为了防止有人遇到类似问题访问这里,这样他们就不会浪费宝贵的时间来解决问题。
对于 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):
解决这个问题非常简单:
当您下载 Python3.x 版本和 运行 .exe 文件时,它会为您提供一个选项来自定义您要在系统中安装的位置 Python.比如我选择这个位置:C:\Program Files\Python36
然后打开系统属性并转到“高级”选项卡(或者您可以简单地这样做:转到开始 > 搜索“environment variables" > 单击“编辑系统环境变量”。)在“高级”选项卡下,查找“环境变量”并单击它。将弹出另一个名为“环境变量”的 window。
现在确保您的用户变量具有在“路径变量”中列出的正确 Python 路径。在我这里的示例中,您应该看到 C:\Program Files\Python36。如果您在那里找不到它,请通过选择“路径变量”字段并单击“编辑”来添加它。
最后一步是仔细检查系统变量下的 PYTHONHOME 和 PYTHONPATH 字段 window.您应该看到与上述相同的路径。如果没有也添加它。
然后单击“确定”并返回到 CMD 终端,并尝试检查 python。现在应该解决该问题。它对我有用。
我在迁移到 Ubuntu 17.10 的过程中遇到了这个错误,这解决了问题:
sudo dpkg-reconfigure python3
也许您必须关闭会话并重新连接。
我也可以解决这个问题。 PYTHONPATH 和 PYTHONHOME 是原因。
运行 这个在终端里
touch ~/.bash_profile
open ~/.bash_profile
然后删除这个文件所有无用的部分,保存。
我不知道这样做有多推荐!
我在 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的时候勾选了"Add Python to environment variables in Advanced Options"。结果是环境变量“PYTHONHOME”和“PYTHONPATH”仍然是python2.7。
最后我通过将“PYTHONHOME”修改为python3.6安装路径并删除变量“PYTHONPATH”解决了这个问题。
查看 /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
只需转到文件 -> 设置 -> select 项目选项卡下的项目解释器 -> 单击小齿轮图标 -> 添加 -> 系统解释器 -> select python 下拉菜单中你想要的版本
这似乎对我有用
我遇到了类似的问题。我的计算机上安装了 anaconda 和 python,我的 python 依赖项来自 Anaconda 目录。当我卸载 Anaconda 时,此错误开始弹出。我添加了 PYTHONPATH
但它仍然没有成功。
我查看了 python -version
并知道它仍然在走 anaconda 路径。
我不得不手动删除 Anaconda3 目录,然后 python 开始从 PYTHONPATH
获取依赖项。
问题已解决!
在使用 pipenv
将我的 mac 更新为 macOS Catalina 时遇到同样的问题。 Pipenv 为你创建和管理一个 virtualenv
,所以@Anoop-Malav 之前的建议是一样的,只是使用 pipenv 根据当前目录删除虚拟环境并重新设置它:
pipenv --rm
pipenv shell # recreate a virtual env with your current Pipfile
我在更新到 macOS Catalina 后遇到了这个问题"ModuleNotFoundError: No module named 'encodings"。
我的系统中安装了 Python 的多个版本。
从 macOS 系统中删除所有 python 版本(2.7 和 3.7.4)并重新安装最新的 python 3.8 对我有用。
要从 macOS 中删除 python,我已按照此处的说明进行操作 How to uninstall Python 2.7 on a Mac OS X 10.6.4?
以上 link 适用于 python 2.7,但您也可以将其用于 3.7。
因为这是 google 中的第一个结果,我只想为其他遇到监狱问题的人添加以下信息:
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 导入您的监狱时,您都需要 link 依赖项和 /usr/lib/pythonX.Y 到 [JAIL]/usr/lib/。希望这有帮助。
在我的例子中,只需更改 anaconda 文件夹的权限即可:
sudo chmod -R u=rwx,g=rx,o=rx /path/to/anaconda
我尝试在我的 macOS Catalina 10.15.3 上启动 MySql Workbench 8.0 时遇到此错误。
我通过在我的系统上安装 Python 3.7 解决了这个问题。
我猜将来,当 Workbench 的版本大于 8 时,将需要更高版本的 Python。只需查看错误中的库路径,您就会找到所需的版本。
我在 Debian 服务器上遇到了同样的问题,对我来说,问题是我将我的项目放在 /root/
文件夹中,mod_wsgi 没有访问该文件夹的权限.所以我只是将我的项目移动到 /var/www/html/
并更新了我的 VirtualHost 配置。
在我的例子中,有效的是:我将 conf 中的 env 路径从 /home/vinzee/.pyenv/versions/envname/bin/
更改为 /home/vinzee/.pyenv/versions/envname/
并且有效。
环境路径似乎需要是虚拟环境根文件夹的路径(而不是 ROOT_VENV/bin/
的路径)。
您还可以像其他人建议的那样尝试不使用尾部斜线,但就我而言,使用和不使用它都有效。
看来这个错误的发生可能有多种原因(考虑到此处不同答案的数量)。
对于我,问题与我的应用程序部署在虚拟环境中,并且 pyvenv.cfg
文件的权限错误有关。它必须是用户可写的 uwsgi 是 运行 as(在我的例子中是 http
)。
我尝试了所有方法,删除了 PYTHONPATH 和 PYTHONHOME - 错误并没有消失。我忽略了我在 VirtualHost 的 wsgi 配置中在 WSGIDaemonProcess 下指定了一个 python-home 路径。我删除了它,错误消失了。
我最近重新安装了 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。我可以从这里做什么?
对于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 编辑 fo
对于 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添加到环境变量。
我离开这里是为了防止有人遇到类似问题访问这里,这样他们就不会浪费宝贵的时间来解决问题。
对于 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):
解决这个问题非常简单:
当您下载 Python3.x 版本和 运行 .exe 文件时,它会为您提供一个选项来自定义您要在系统中安装的位置 Python.比如我选择这个位置:C:\Program Files\Python36
然后打开系统属性并转到“高级”选项卡(或者您可以简单地这样做:转到开始 > 搜索“environment variables" > 单击“编辑系统环境变量”。)在“高级”选项卡下,查找“环境变量”并单击它。将弹出另一个名为“环境变量”的 window。
现在确保您的用户变量具有在“路径变量”中列出的正确 Python 路径。在我这里的示例中,您应该看到 C:\Program Files\Python36。如果您在那里找不到它,请通过选择“路径变量”字段并单击“编辑”来添加它。
最后一步是仔细检查系统变量下的 PYTHONHOME 和 PYTHONPATH 字段 window.您应该看到与上述相同的路径。如果没有也添加它。
然后单击“确定”并返回到 CMD 终端,并尝试检查 python。现在应该解决该问题。它对我有用。
我在迁移到 Ubuntu 17.10 的过程中遇到了这个错误,这解决了问题:
sudo dpkg-reconfigure python3
也许您必须关闭会话并重新连接。
我也可以解决这个问题。 PYTHONPATH 和 PYTHONHOME 是原因。
运行 这个在终端里
touch ~/.bash_profile
open ~/.bash_profile
然后删除这个文件所有无用的部分,保存。 我不知道这样做有多推荐!
我在 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的时候勾选了"Add Python to environment variables in Advanced Options"。结果是环境变量“PYTHONHOME”和“PYTHONPATH”仍然是python2.7。
最后我通过将“PYTHONHOME”修改为python3.6安装路径并删除变量“PYTHONPATH”解决了这个问题。
查看 /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
只需转到文件 -> 设置 -> select 项目选项卡下的项目解释器 -> 单击小齿轮图标 -> 添加 -> 系统解释器 -> select python 下拉菜单中你想要的版本
这似乎对我有用
我遇到了类似的问题。我的计算机上安装了 anaconda 和 python,我的 python 依赖项来自 Anaconda 目录。当我卸载 Anaconda 时,此错误开始弹出。我添加了 PYTHONPATH
但它仍然没有成功。
我查看了 python -version
并知道它仍然在走 anaconda 路径。
我不得不手动删除 Anaconda3 目录,然后 python 开始从 PYTHONPATH
获取依赖项。
问题已解决!
在使用 pipenv
将我的 mac 更新为 macOS Catalina 时遇到同样的问题。 Pipenv 为你创建和管理一个 virtualenv
,所以@Anoop-Malav 之前的建议是一样的,只是使用 pipenv 根据当前目录删除虚拟环境并重新设置它:
pipenv --rm
pipenv shell # recreate a virtual env with your current Pipfile
我在更新到 macOS Catalina 后遇到了这个问题"ModuleNotFoundError: No module named 'encodings"。
我的系统中安装了 Python 的多个版本。
从 macOS 系统中删除所有 python 版本(2.7 和 3.7.4)并重新安装最新的 python 3.8 对我有用。
要从 macOS 中删除 python,我已按照此处的说明进行操作 How to uninstall Python 2.7 on a Mac OS X 10.6.4?
以上 link 适用于 python 2.7,但您也可以将其用于 3.7。
因为这是 google 中的第一个结果,我只想为其他遇到监狱问题的人添加以下信息:
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 导入您的监狱时,您都需要 link 依赖项和 /usr/lib/pythonX.Y 到 [JAIL]/usr/lib/。希望这有帮助。
在我的例子中,只需更改 anaconda 文件夹的权限即可:
sudo chmod -R u=rwx,g=rx,o=rx /path/to/anaconda
我尝试在我的 macOS Catalina 10.15.3 上启动 MySql Workbench 8.0 时遇到此错误。
我通过在我的系统上安装 Python 3.7 解决了这个问题。
我猜将来,当 Workbench 的版本大于 8 时,将需要更高版本的 Python。只需查看错误中的库路径,您就会找到所需的版本。
我在 Debian 服务器上遇到了同样的问题,对我来说,问题是我将我的项目放在 /root/
文件夹中,mod_wsgi 没有访问该文件夹的权限.所以我只是将我的项目移动到 /var/www/html/
并更新了我的 VirtualHost 配置。
在我的例子中,有效的是:我将 conf 中的 env 路径从 /home/vinzee/.pyenv/versions/envname/bin/
更改为 /home/vinzee/.pyenv/versions/envname/
并且有效。
环境路径似乎需要是虚拟环境根文件夹的路径(而不是 ROOT_VENV/bin/
的路径)。
您还可以像其他人建议的那样尝试不使用尾部斜线,但就我而言,使用和不使用它都有效。
看来这个错误的发生可能有多种原因(考虑到此处不同答案的数量)。
对于我,问题与我的应用程序部署在虚拟环境中,并且 pyvenv.cfg
文件的权限错误有关。它必须是用户可写的 uwsgi 是 运行 as(在我的例子中是 http
)。
我尝试了所有方法,删除了 PYTHONPATH 和 PYTHONHOME - 错误并没有消失。我忽略了我在 VirtualHost 的 wsgi 配置中在 WSGIDaemonProcess 下指定了一个 python-home 路径。我删除了它,错误消失了。