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

时间:2016-06-28 19:54:14

标签: numpy matplotlib unicode utf-8 unicode-escapes

我在Windows 10下安装了pyzominiconda,并使用numpy安装了matplotlibconda install。但是,当我试图运行时

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类似问题的帖子,但这与初始导入期间发生的情况不同。 / p>

3 个答案:

答案 0 :(得分: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,并用转义的(\\)或正斜杠替换任何非转义的反斜杠(\)

答案 1 :(得分:3)

所以,对于遇到麻烦的人来说

import numpy

使用Windows 10 + Anaconda:

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

中的'\\'
\Lib\site-packages\numpy\__config__.py

之后我可以导入numpy。

答案 2 :(得分:0)

这就是我的工作方式:在用户单词之前和之后加倍\

例如:\\users\\admin\anaconda3\sample.wav

我在Windows 7上使用python 3.6

不确定为什么帖子在路径

中的用户词后面和之前只保留一个\