141

我最近重新安装了 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。我能从这里做什么?谢谢

4

17 回答 17

110

对于 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 编辑

于 2016-08-23T09:11:32.067 回答
25

对于 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时,可以自定义安装,在高级选项中勾选Add Python to environment variables 。

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

于 2017-08-02T09:14:01.443 回答
13

我在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 ”来解决它。

于 2018-04-23T09:40:57.103 回答
13

对于 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。现在应该解决这个问题。它对我有用。

于 2017-08-14T04:31:32.127 回答
9

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

sudo dpkg-reconfigure python3

也许您将不得不关闭会话并重新连接。

于 2017-11-07T11:48:22.663 回答
2

查看 /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
于 2018-08-28T14:33:32.087 回答
1

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

sudo chmod -R u=rwx,g=rx,o=rx /path/to/anaconda   
于 2020-08-09T10:46:25.473 回答
1

在使用pipenv. Pipenvvirtualenv为您创建和管理一个,因此@Anoop-Malav 的早期建议是相同的,只是使用 pipenv 根据当前目录删除虚拟环境并重置它:

pipenv --rm
pipenv shell  # recreate a virtual env with your current Pipfile
于 2019-11-18T11:51:37.617 回答
1

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

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

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

于 2021-01-23T21:50:28.357 回答
1

更新到 macOS Catalina 后,我遇到了这个问题“ModuleNotFoundError: No module named '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。

于 2019-12-03T05:27:36.627 回答
0

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

于 2021-09-07T13:14:57.767 回答
0

就我而言,有效的方法如下:我将 conf 中的 env 路径从/home/vinzee/.pyenv/versions/envname/bin/to更改为/home/vinzee/.pyenv/versions/envname/有效。

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

您也可以尝试不使用其他人建议的斜杠,但在我的情况下,它在有和没有它的情况下都有效。

于 2021-10-07T17:26:22.970 回答
0

我有一个类似的问题。我在我的计算机上安装了 anaconda 和 python,我的 python 依赖项来自 Anaconda 目录。当我卸载 Anaconda 时,这个错误开始出现。我加了PYTHONPATH,但还是不行。我检查python -version并知道它仍在走蟒蛇路径。我不得不手动删除 Anaconda3 目录,之后 python 开始从PYTHONPATH.
问题解决了!

于 2019-11-16T09:22:27.147 回答
0

似乎由于多种原因可能会发生此错误(鉴于此处有许多不同的答案)。

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

于 2021-11-18T15:12:20.453 回答
-1

因为这是谷歌的第一个结果,所以我只想为其他有监狱问题的人添加以下信息:

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 导入你的监狱时,你都需要将依赖项和 /usr/lib/pythonX.Y 链接到 [JAIL]/usr/lib/。希望这可以帮助。

于 2020-02-05T23:24:40.973 回答
-2

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

这似乎对我有用

于 2019-11-04T17:30:09.847 回答
-12

我也可以解决这个问题。PYTHONPATH 和 PYTHONHOME 是有原因的。

在终端中运行它

   touch ~/.bash_profile
   open ~/.bash_profile

然后删除该文件所有无用的部分,并保存。我不知道如何推荐这样做!

于 2018-02-06T22:09:40.457 回答