我最近重新安装了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。我能从这里做什么?谢谢
答案 0 :(得分:63)
对于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 编辑佛
答案 1 :(得分:11)
我在Windows10上使用python3.4。我安装了python3.5。我找不到PYTHONPATH,PYTHONHOME env变量。如果我在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添加到环境变量。
我离开这里是因为有人有类似的问题访问这里,这样他们就不会浪费宝贵的时间去弄清楚。
答案 2 :(得分:6)
我在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(现在已经卸载),我检查了#34;将Python添加到高级选项中的环境变量&#34;安装python 3.6时。结果是环境变量&#34; PYTHONHOME &#34;和&#34; PYTHONPATH &#34;仍然是python2.7。
最后我通过修改&#34; PYTHONHOME &#34;解决了这个问题。到python3.6安装路径并删除变量&#34; PYTHONPATH &#34;。
答案 3 :(得分:5)
我在迁移到Ubuntu 17.10时遇到了这个错误,这解决了这个问题:
sudo dpkg-reconfigure python3
也许您必须关闭会话并重新连接。
答案 4 :(得分: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):
解决这个问题非常简单:
当您下载Python3.x版本并运行.exe文件时,它会为您提供一个选项,用于自定义系统中要安装Python的位置。例如,我选择了这个位置: C:\ Program Files \ Python36
然后打开系统属性并转到&#34; 高级&#34;标签(或者你可以这样做:转到开始&gt;搜索&#34; 环境变量&#34;&gt;点击&#34;编辑系统环境变量&#34;。 )&#34;高级&#34;选项卡,查找&#34;环境变量&#34;然后单击它。另一个名为&#34; Environment Variables&#34;的窗口会弹出。
现在确保您的用户变量在&#34;路径变量&#34;中列出了正确的Python路径。在我的示例中,您应该看到 C:\ Program Files \ Python36 。如果您在那里找不到它,请通过选择Path Variable字段并单击Edit。添加它。
最后一步是在同一窗口中仔细检查系统变量下的 PYTHONHOME 和 PYTHONPATH 字段。您应该看到与上述相同的路径。如果不在那里添加它。
然后单击OK并返回CMD终端,并尝试检查python。现在应该解决这个问题。它对我有用。
答案 5 :(得分:1)
就我而言,仅更改anaconda文件夹的权限即可:
sudo chmod -R u=rwx,g=rx,o=rx /path/to/anaconda
答案 6 :(得分:1)
尝试在我的 macOS Catalina 10.15.3 上启动 MySql Workbench 8.0 时出现此错误。
我通过在我的系统上安装 Python 3.7 解决了这个问题。
我想将来,当 Workbench 的版本大于 8 时,它将需要更新版本的 Python。只需查看错误中的库路径即可找到所需的版本。
答案 7 :(得分:0)
查看/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
答案 8 :(得分:0)
我有一个类似的问题。我在计算机上同时安装了anaconda和python,并且我的python依赖项来自Anaconda目录。当我卸载Anaconda时,此错误开始弹出。我添加了PYTHONPATH
,但仍然没有成功。
我用a/b and a*b
进行了检查,然后知道它仍在使用anaconda路径。
我不得不手动删除Anaconda3目录,然后python开始从*c & *d
获取依赖项。
问题已解决!
答案 9 :(得分:0)
使用pipenv
时,将我的mac更新到macOS Catalina时遇到相同的问题。 Pipenv为您创建和管理virtualenv
,因此@ Anoop-Malav的早期建议是相同的,只是使用pipenv根据当前目录删除虚拟环境并重置它:
pipenv --rm
pipenv shell # recreate a virtual env with your current Pipfile
答案 10 :(得分:0)
在更新到macOS Catalina后,我遇到此问题“ ModuleNotFoundError:没有名为'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?
以上链接适用于python 2.7,但您也可以将其用于3.7。
答案 11 :(得分:-1)
只需转到文件->设置->在项目标签下选择项目解释器->单击小齿轮图标->添加->系统解释器->在下拉菜单中选择所需的python版本
这似乎对我有用
答案 12 :(得分:-1)
因为这是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导入监狱时,您都需要将依赖项和/usr/lib/pythonX.Y链接到[JAIL] / usr / lib /。希望这会有所帮助。
答案 13 :(得分:-4)
我也可以解决这个问题。 PYTHONPATH和PYTHONHOME是有原因的。
在终端中运行
touch ~/.bash_profile
open ~/.bash_profile
然后删除此文件的所有无用部分,并保存。 我不知道这是怎么建议的!