python - Cython 无法在 Win 7 上的 Anaconda3 64 位中使用内存 View

标签 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'编解码器无法解码位置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/

相关文章:

python - 如何使用 Numpy/OpenCV 屏蔽图像?

c - 程序在这里如何使用堆栈?

python - 从 numpy 数组的最后一个轴提取值

python - 从字符串中删除某些单词

python - Numpy 数组,每行删除一个任意元素

python - 渲染计数器集合排序顺序

python - 有没有办法将随机文件从源复制到目标?

python - 从 C 扩展调用 Python 函数的速度成本

c - 破坏红色区域的内联汇编

linux - gcc make 安装错误