Cython 无法在 Win 7 上的 Anaconda3 64 位中使用内存视图

Cython not working with memoryviews in Anaconda3 64bit on Win 7

编辑:解释为什么我不认为它与 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 出现这个问题感到有点震惊(cythonmemoryview 都很常用)。我做错了什么吗?

环境: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 静态工具链)。

谁能确认一下?谢谢!

肖恩

使用 conda mingw 和 Cython(https://github.com/ContinuumIO/anaconda-issues/issues/271). You might try installing mingw static 或使用 Visual Studio 存在一些已知问题。