Python 2.7:LookupError:未知编码:cp65001 [重复]
Posted
技术标签:
【中文标题】Python 2.7:LookupError:未知编码:cp65001 [重复]【英文标题】:Python 2.7 : LookupError: unknown encoding: cp65001 [duplicate] 【发布时间】:2016-05-12 14:29:45 【问题描述】:我在 windows 8.1(64 位)上安装了 python 2(64 位)并想知道 pip 版本,为此我解雇了pip --version
,但它给出了错误。
C:\Users\ADMIN>pip --version
Traceback (most recent call last):
File "c:\dev\python27\lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "c:\dev\python27\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "C:\dev\Python27\Scripts\pip.exe\__main__.py", line 5, in <module>
File "c:\dev\python27\lib\site-packages\pip\__init__.py", line 15, in <module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "c:\dev\python27\lib\site-packages\pip\vcs\mercurial.py", line 10, in <module>
from pip.download import path_to_url
File "c:\dev\python27\lib\site-packages\pip\download.py", line 35, in <module>
from pip.utils.ui import DownloadProgressBar, DownloadProgressSpinner
File "c:\dev\python27\lib\site-packages\pip\utils\ui.py", line 51, in <module>
_BaseBar = _select_progress_class(IncrementalBar, Bar)
File "c:\dev\python27\lib\site-packages\pip\utils\ui.py", line 44, in _select_progress_class
six.text_type().join(characters).encode(encoding)
LookupError: unknown encoding: cp65001
注意:同样的命令适用于 python 3。我已经卸载并再次安装,但仍然没有成功。
【问题讨论】:
cp65001
是 Windows 对 UTF-8 的双说。您可能可以暂时重新配置您的终端以使用您的 Python 版本已知的编码(也许是旧的cp1252
?),看看是否有帮助。
在 Windows 10 上启用日语输入和输出后,我在 Powershell 中自发地发生了这种情况。禁用它并重新启动 Powershell 显然解决了这个问题。
chcp 850 为我解决了这个问题 - Windows 中的其他东西随机将控制台转移到 65001(一个术语模拟器),因此设置为 850 作为重新启动控制台的解决方法。
在cp65001
已成为utf-8
的别名的Python 3.8 上,您不应出现此错误。 docs.python.org/3/library/codecs.html#standard-encodings(滚动到底部)
【参考方案1】:
首先你需要升级你的点子。 您可以通过以下方式在 Windows 中执行此操作:
python -m pip install -U pip
然后手动进入您的脚本文件夹,从该文件夹输入命令行(您可以通过单击 shift + 鼠标右键 -> 打开控制台窗口来执行此操作),然后您应该使用其中之一这个命令。
pip -V
pip --version
这将导致
pip 7.1.2 from c:\python27\lib\site-packages (python 2.7)
如果仍有问题,可以尝试删除当前的 Python PATH,并在 Python 2.7 中添加一个新路径。
【讨论】:
我连pip的版本都无法打印,所以其他命令也报同样的错误。 尝试卸载临时 python 3,重新安装 python 2.7 并尝试 Windows power shell 可能吗?我可以只使用 CMD 在我的 Windows 10 上执行此命令而不会出现任何问题。可以输入python解释器吗? Windows 电源外壳?我没有任何想法。是的,我已经卸载了python 3,是的,我可以进入python解释器了。 好的。首先,我们必须检查您使用的是什么编码。【参考方案2】:该错误意味着您的脚本尝试打印的 Unicode 字符无法使用当前的控制台字符编码来表示。
如果一切顺利,请在执行 pip --version 不重新加载终端后尝试运行set PYTHONIOENCODING=UTF-8
,将PYTHONIOENCODING
添加为值为UTF-8
的环境变量。请参阅How to set the path and environment variables in Windows 文章了解如何添加 Windows 变量。
注意:对于 PowerShell 使用 $env:PYTHONIOENCODING = "UTF-8"
您也可以尝试使用 pip 安装win-unicode-console:
pip install win-unicode-console
然后重新加载你的终端并尝试执行pip --version
但是您可以按照Windows cmd encoding change causes Python crash 回答的建议,因为您有同样的问题。
【讨论】:
它也因同样的错误而失败。我根本无法使用 pip :( 在不重新加载终端的情况下执行pip --version
后尝试运行set PYTHONIOENCODING=UTF-8
谢谢 :) 它起作用了...所以我每次都需要设置它吗?你能解释一下发生了什么以及如何阻止它吗?请把它写成答案,以便我接受它作为答案。
“没有重新加载终端”是我所缺少的。
set PYTHONIOENCODING=UTF-8
命令帮我完成了,谢谢!以上是关于Python 2.7:LookupError:未知编码:cp65001 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python 2.7 urllib.urlretrieve 未知 url 类型 https
在python 2.7中导入熊猫时出现“ValueError:未知语言环境:UTF-8” [重复]
执行Python出现LookupError: unknown encoding: cp65001解决办法
2020-1-4:安装Python,运行PIP出现LookupError: unknown encoding: cp65001