导入numpy时出现错误:SyntaxError:(unicode error)'unicodeescape'编解码器无法解码位置2-3的字节:截断的\uXXXX转义符。

7
我已经在Windows 10中安装了pyzominiconda,并使用conda install安装了numpymatplotlib。但是当我尝试运行时,出现了以下错误。
import numpy as np 
import matplotlib.pyplot as plt 

我收到了以下错误信息:
Traceback (most recent call last):
  File "<tmp 1>", line 3, in <module>
    import numpy
  File "c:\users\jakub\miniconda3\lib\site-packages\numpy\__init__.py", line 165, in <module>
    from numpy.__config__ import show as show_config
  File "c:\users\jakub\miniconda3\lib\site-packages\numpy\__config__.py", line 5
    lapack_mkl_info={'libraries': ['mkl_lapack95_lp64', 'mkl_core_dll', 'mkl_intel_lp64_dll', 'mkl_intel_thread_dll'], 'define_macros': [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)], 'include_dirs': ['c:\users\jakub\miniconda3\\Library\\include'], 'library_dirs': ['c:\users\jakub\miniconda3\\Library\\lib']}
                                                                                                                                                                                                       ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \uXXXX escape

我在代码和目录结构中都没有使用任何非标准字符...我读过许多关于UTF-8类似问题的帖子,但这次情况不同,因为它发生在初始导入期间。


请检查您的安装是否完整并正常工作,例如,请参阅最近的这篇帖子。重新安装包可能会有所帮助。 - Andras Deak -- Слава Україні
@QoP:在追踪错误时,请使用代码格式,而不是引用格式。 - user2357112
尝试使用conda卸载numpy然后重新安装它,但问题仍然存在...一些模块可以导入,而另一些则不行... - Jakub
4个回答

10

当conda安装软件包时,它替换前缀以使其可重定位。不幸的是,它没有智能转义反斜杠,因此在Windows上,这些未转义的反斜杠会导致您看到的错误。

在最近版本的conda中,我们在前缀替换中使用正斜杠,这个问题就解决了。如果您可以更新conda,请更新。如果不能,numpy在以下文件中具有前缀:

"Lib/site-packages/numpy/distutils/site.cfg"
"Scripts/f2py.py"
"Lib/site-packages/numpy/config.py"
"Lib/site-packages/numpy/distutils/config.py"

特别注意后面的3个,将任何未转义的反斜杠(\)替换为转义的反斜杠(\\)或正斜杠。


3
所以,对于在IT技术方面遇到困难的人,你需要进行以下操作:
import numpy

使用 Windows 10 + Anaconda:

我将所有单个 '\' 替换为双 '\\' 在

\Lib\site-packages\numpy\__config__.py

在那之后,我可以导入numpy。


1
所以,我们学到的教训是:如果在Python 3中遇到Unicode语法错误,请查看您的源代码是否有任何反斜杠字符('')。如果没有,请查看库。它们可能包含有问题的字符。一旦找到,用正斜杠或双反斜杠替换它们。 - Raja

0
这是我的解决方法:在用户单词前后加上双反斜杠\\
例如:\\users\\admin\anaconda3\sample.wav 我正在使用Windows 7上的Python 3.6
不确定为什么帖子在路径中只保留一个反斜杠。

0
import sys
print(sys.path)
sys.path.append('K:\Udemy\PYTHON\college')

在导入sys路径时,我遇到了这个问题。尝试将所有单个'\'替换为'\\'。希望这样做后,您可以成功导入。

import sys
print(sys.path)
sys.path.append('K:\\Udemy\PYTHON\\college')

1
这对我来说看起来不像是一个新的答案。 - Guildenstern

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接