Cython在Win 7上没有使用Anaconda3 64bit的内存视图

时间:2015-04-03 02:37:45

标签: python gcc numpy cython anaconda

编辑:解释为什么我认为它不是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静态工具链)。

有人可以确认一下吗?谢谢!

肖恩

1 个答案:

答案 0 :(得分:2)

使用conda mingw和Cython(https://github.com/ContinuumIO/anaconda-issues/issues/271)存在一些已知问题。您可以尝试安装mingw static,或使用Visual Studio。