编辑:解释为什么我认为它不是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' codec can't decode byte 0x83 in position 1: invalid start byte"
如果我使用WinPython,代码将正确运行,因为它使用的是另一个版本的gcc(Carl Kleffner的mingw-w64 numpy静态工具链)。
有人可以确认一下吗?谢谢!
肖恩
答案 0 :(得分:2)
使用conda mingw和Cython(https://github.com/ContinuumIO/anaconda-issues/issues/271)存在一些已知问题。您可以尝试安装mingw static,或使用Visual Studio。