编辑:解释为什么我不认为它与 Cython in Win64 with TDM-GCC reports "'utf-8' codec can't decode byte 0x83 in position 1: invalid start byte" 重复。
这个问题是针对 Anaconda3 的,它应该是最大的科学 python 发行版,所以我认为它绝对应该与开箱即用的 cython 和 memoryview 一起使用。
老问题是我自定义将 tdm-gcc 和 python 放在一起,所以我肯定有可能导致它无法正常工作。
总的来说,这两个问题可能不是同一个根源,完全针对不同的用户。
注意:在 Cython 邮件列表和 Anaconda 邮件列表中共同列出。很抱歉向这两个列表的订阅者发送垃圾邮件。
亲爱的大家,
我对 Anaconda 3 出现这个问题感到有点震惊(cython
和 memoryview
都非常常用)。我做错了什么吗?
环境:Windows 7、Anaconda 3(默认设置为 conda install mingw
、64 位、Python 3.4 64 位
# test_memory_view.pyx
import numpy as np
cimport numpy as np
cpdef double [:] func():
cdef double [:] a = np.arange(10.)
return a
# test_compiler_script.py
import numpy as np
import pyximport
pyximport.install(setup_args={'script_args':['--compiler=mingw32'],
'include_dirs':np.get_include()},
reload_support=True)
import test_memory_view
它不会运行,因为它会显示“UnicodeDecodeError:'utf-8'编解码器无法解码位置1中的字节0x83:无效的起始字节”
如果我使用 WinPython,代码将正确运行,因为它使用的是另一个版本的 gcc(Carl Kleffner 的 mingw-w64 numpy 静态工具链)。
有人可以确认一下吗?谢谢!
肖恩
最佳答案
使用 conda mingw 和 Cython ( https://github.com/ContinuumIO/anaconda-issues/issues/271 ) 存在一些已知问题。您可以尝试安装mingw static相反,或使用 Visual Studio。
关于python - Cython 无法在 Win 7 上的 Anaconda3 64 位中使用内存 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425473/