2014-10-01 89 views
0

對Anaconda(和Cython)的新手抱歉。Wrt。 Anaconda Python 3.4和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()

我的問題是,這是在哪裏設置?應該有一個配置文件的地方,對吧?

-Shawn

+0

@Veedrac對不起 - 我改了它,現在只有1個問題。 – 2014-10-01 17:46:34

回答

2

import numpy只是一個普通的進口。除非你這樣做,否則Cython不會特別對待它(它不會導入頭文件或其他編譯時文件),因此沒有什麼特別的要求。

我非常懷疑Anaconda正在做什麼特殊功能。

如果你想配置pyximport,你可以製作一個pxybld文件,such as when you want to support C++ with pyximport

+0

'進口numpy'本身只是一個正規的進口。奇怪的部分是沒有必要在'pyximport.install()'中將'n​​p.get_include()'添加到''include_dirs「',如問題所述。 – 2014-10-01 18:15:47

+0

OMG你是對的!我很抱歉,我沒有先理解你的答案。我爲downvote道歉,一旦允許(2小時後)將取消它。 – 2014-10-01 20:22:31

+0

沒有難過的感覺;很高興我能幫上忙 :)。 – Veedrac 2014-10-01 20:32:42