写。 Anaconda Python 3.4 和 Cython

Posted

技术标签:

【中文标题】写。 Anaconda Python 3.4 和 Cython【英文标题】:Wrt. Anaconda Python 3.4 and Cython 【发布时间】:2014-10-01 00:24:39 【问题描述】:

很抱歉刚接触 Anaconda(和 Cython)。

我使用的是 Anaconda 64 位 Python 3.4 Windows。

Anaconda 在哪里为 Cython 进行所有这些设置?我有一个名为cy_test.pyx 的测试代码如下:

import numpy as np

cpdef double [:] func():
    cdef double [:] a = np.arange(10.)
    return a

然后,而不是

import pyximport, numpy
pyximport.install(setup_args="script_args":["--compiler=mingw32"], "include_dirs":numpy.get_include())

我只需要运行import pyximport; pyximport.install()。然后我可以使用

import test_cy
a = test_cy.func()
print(list(a))

它只是工作,没有我告诉它包含numpy.get_include()

我的问题是,这是在哪里设置的?哪里应该有配置文件吧?

-肖恩

【问题讨论】:

@Veedrac 抱歉 - 我更改了它,现在只有 1 个问题。 【参考方案1】:

import numpy 只是一个常规导入。除非您这样做 cimport numpy Cython 不会对此进行特殊处理(它不会导入头文件或其他编译时文件),因此没有什么特别要包含的。

我非常怀疑 Anaconda 正在做什么特殊功能。

如果要配置pyximport,可以制作pxybld文件such as when you want to support C++ with pyximport

【讨论】:

import numpy 本身只是一个常规导入。奇怪的部分是不需要在pyximport.install() 中添加np.get_include()"include_dirs",如问题所述。 天哪,你是对的!很抱歉,我没有首先理解您的回答。我为投反对票深表歉意,一旦我被允许(2 小时后),我将取消它。 没有难过的感觉;很高兴我能帮忙:)。 @ShawnWang 需要注意的是,在过去,我必须在 /Lib/distutils 中设置一个“distutils.cfg”文件才能使 pyximport 正常工作。 Anaconda 已经设置了一个条目,告诉 Python 的 distutils 默认使用 MinGW 进行编译。

以上是关于写。 Anaconda Python 3.4 和 Cython的主要内容,如果未能解决你的问题,请参考以下文章

anaconda怎么安装python3

创建与现有python环境相同的anaconda环境

如何安装anaconda和python

无法使用最新下载的 Anaconda 创建新的 python 3.5 环境

Anaconda入门

anaconda与python啥关系