Python 导入错误:没有名为“编码”的模块
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/38132755/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ImportError: No module named 'encodings'
提问by codyc4321
I recently reinstalled ubuntu and did upgrade to 16.04 and cannot use python:
我最近重新安装了 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
At this point, python itself doesn't work
此时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
Even this suggestion is no longer working:
即使这个建议不再有效:
unset PYTHONHOME
unset PYTHONPATH
Every every I fix it one way, it comes back again. Several answers help to fix it temporarily, but not for good. I've reinstalled python and python3 several times. What can I do from here? Thank you
每一次我以一种方式修复它,它都会再次出现。几个答案有助于暂时修复它,但不是很好。我已经多次重新安装 python 和 python3。我可以从这里做什么?谢谢
采纳答案by Anoop Malav
For Python-3 try removing virtual environment files. And resetting it up.
对于 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_3edit fo
回答by Jayground
For Windows10 User.
对于 Windows10 用户。
I was using python3.4 on Windows10. I installed python3.5. I couldn't find PYTHONPATH, PYTHONHOME env variable. If I command python in CMD console, It kept using python3.4. I deleted python3.4. Whenever I command python in CMD console, it starts showing an error like below.
我在 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'
I searched to figure out my problem. Solution was simple. When you install python3.5, you can custom install and check Add Python to environment variablesin Advanced Options.
我搜索以找出我的问题。解决方案很简单。安装python3.5时,可以自定义安装,在高级选项中勾选Add Python to environment variables。
I just leave here for case that someone have similar issues visit here so that they don't waste their precious time much to figure out.
我只是离开这里以防万一有人有类似的问题访问这里,这样他们就不会浪费宝贵的时间来弄清楚。
回答by Li Qiao
I was facing the same problem under Windows7. The error message looks like that:
我在 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):
Fatal Python error: Py_Initialize: unable to load the file system codec ModuleNotFoundError: No module named 'encodings' Current thread 0x000011f4 (most recent call first):
I have installed python 2.7(uninstalled now), and I checked "Add Python to environment variables in Advanced Options" while installing python 3.6. It comes out that the Environment Variable "PYTHONHOME" and "PYTHONPATH" is still python2.7.
我已经安装了 python 2.7(现在已卸载),并且在安装 python 3.6 时选中了“将 Python 添加到高级选项中的环境变量”。结果发现环境变量“ PYTHONHOME”和“ PYTHONPATH”仍然是python2.7。
Finally I solved it by modify "PYTHONHOME" to python3.6 install path and remove variable "PYTHONPATH".
最后我通过将“ PYTHONHOME”修改为python3.6安装路径并删除变量“ PYTHONPATH”来解决它。
回答by dotpy_novice
For the same issue on Windows7
对于 Windows7 上的相同问题
You will see an error like this, if your environment variables/ system variables are incorrectly set:
如果您的环境变量/系统变量设置不正确,您将看到这样的错误:
Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'
Current thread 0x00001db4 (most recent call first):
Fixing this is really simple:
解决这个问题真的很简单:
When you download Python3.x version, and run the .exe file, it gives you an option to customize where in your system you want to install Python. For example, I chose this location: C:\Program Files\Python36
Then open system properties and go to "Advanced" tab (Or you can simply do this: Go to Start > Search for "environment variables" > Click on "Edit the system environment variables".) Under "Advanced" tab, look for "Environment Variables" and click it. Another window with name "Environment Variables" will pop up.
Now make sure your user variables has the correct Python path listed in "Path Variable". In my example here, you should see C:\Program Files\Python36. If you do not find it there, add it, by selecting Path Variable field and clicking Edit.
Last step is to double check PYTHONHOMEand PYTHONPATHfields under System Variables in the same window. You should see same path as described above. If not add it there too.
当您下载 Python3.x 版本并运行 .exe 文件时,它会为您提供一个选项来自定义您要在系统中安装 Python 的位置。比如我选择了这个位置:C:\Program Files\Python36
然后打开系统属性并转到“高级”选项卡(或者您可以简单地执行此操作:转到开始>搜索“环境变量”>单击“编辑系统环境变量”。)在“高级”选项卡下,查找“环境变量”并单击它。将弹出另一个名为“环境变量”的窗口。
现在确保您的用户变量具有在“路径变量”中列出的正确 Python 路径。在我的示例中,您应该看到C:\Program Files\Python36。如果在那里找不到它,请通过选择“路径变量”字段并单击“编辑”来添加它。
最后一步是在同一窗口中仔细检查系统变量下的PYTHONHOME和PYTHONPATH字段。您应该看到与上述相同的路径。如果没有也添加它。
Then click OK and go back to CMD terminal, and try checking for python. The issue should now be resolved. It worked for me.
然后单击确定并返回 CMD 终端,并尝试检查 python。这个问题现在应该得到解决。它对我有用。
回答by numahell
I had this error during migration to Ubuntu 17.10, and this solved the problem :
我在迁移到 Ubuntu 17.10 的过程中遇到了这个错误,这解决了这个问题:
sudo dpkg-reconfigure python3
Maybe you will have to close your session and reconnect.
也许您将不得不关闭会话并重新连接。
回答by Kondal Kolipaka
I was facing this issue "ModuleNotFoundError: No module named 'encodings" after updating to macOS Catalina.
更新到 macOS Catalina 后,我遇到了这个问题“ModuleNotFoundError:No module named 'encodings”。
I was having multiple versions of Python installed in my system.
我的系统中安装了多个版本的 Python。
Removing all the python versions(2.7 and 3.7.4) from macOS system and reinstalling the latest python 3.8 worked for me.
从 macOS 系统中删除所有 python 版本(2.7 和 3.7.4)并重新安装最新的 python 3.8 对我有用。
To remove a python from macOS, I've followed the instructions from here How to uninstall Python 2.7 on a Mac OS X 10.6.4?
要从 macOS 中删除 python,我已按照此处的说明操作如何在 Mac OS X 10.6.4 上卸载 Python 2.7?
The above link is for python 2.7 and but you can use the same for 3.7 also.
上面的链接适用于 python 2.7,但您也可以将其用于 3.7。
回答by Matt
Because this is the first result in google I just want to add the following information for anybody else having problems with jails:
因为这是谷歌的第一个结果,我只想为其他有监狱问题的人添加以下信息:
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)
When attempting to import python into your jail you both need to link the dependencies and /usr/lib/pythonX.Y to [JAIL]/usr/lib/. Hope this helps.
当尝试将 python 导入你的 jail 时,你都需要将依赖项和 /usr/lib/pythonX.Y 链接到 [JAIL]/usr/lib/。希望这可以帮助。
回答by IvanTheFirst
Look at /lib/python3.5 and you will see broken links to python libraries. Recreate it to working directory.
查看 /lib/python3.5,您将看到 python 库的断开链接。将其重新创建到工作目录。
Next error -
下一个错误 -
./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'
fixed like this - https://askubuntu.com/questions/907035/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
回答by Satyam Gaba
I had a similar issue. I had both anaconda and python installed on my computer and my python dependencies were from the Anaconda directory. When I uninstalled Anaconda, this error started popping. I added PYTHONPATH
but it still didn't go.
I checked with python -version
and go to know that it was still taking the anaconda path.
I had to manually delete Anaconda3 directory and after that python started taking dependencies from PYTHONPATH
.
Issue Solved!
我有一个类似的问题。我的计算机上同时安装了 anaconda 和 python,我的 python 依赖项来自 Anaconda 目录。当我卸载 Anaconda 时,此错误开始出现。我加了PYTHONPATH
但是还是不行。我检查python -version
并知道它仍在走蟒蛇路径。我不得不手动删除 Anaconda3 目录,然后 python 开始从PYTHONPATH
.
问题已解决!
回答by qix
Had the same problem when updating my mac to macOS Catalina, while using pipenv
. Pipenv creates and manages a virtualenv
for you, so the earlier suggestion from @Anoop-Malav is the same, just using pipenv to remove the virtual environment based on the current dir and reset it:
在使用pipenv
. Pipenvvirtualenv
为你创建和管理一个,所以之前@Anoop-Malav 的建议是一样的,只是使用 pipenv 根据当前目录删除虚拟环境并重置它:
pipenv --rm
pipenv shell # recreate a virtual env with your current Pipfile