cython - 在windows

时间:2017-02-08 12:38:34

标签: windows python-2.7 cython c99

我正在使用Cython来加速我的一些Python代码。我之前成功使用过它。但现在我需要在我的.pyx文件中从libc.math导入一些函数。

from libc.math cimport lgamma, exp, log

并在尝试构建文件时出现以下错误。

> python setup.py build_ext -i
  

运行build_ext

     

cythoning tradeclass.pyx to tradeclass.c

     

建立' tradeclass'扩展

     

C:\ Users \ js \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C ++ for   Python \ 9.0 \ VC \ Bin \ amd64 \ cl.exe / c / nologo / Ox / MD / W3 / GS- / DNDEBU G

     

...

     

tradeclass.c(4969):警告C4013:' lgamma'不确定的;假设extern返回int

     

...

     

C:\ Users \ js \ AppData \ Local \ Programs \ Common \ Microsoft \ Visual C ++ for Python \ 9.0 \ VC \ Bin \ amd64 \ link.exe / DLL / nologo / INCREMENTAL:NO / LIB   路径:C:\ Users \ js \ AppData \ Local \ Continuum \ Anaconda2 \ libs / LIBPATH:C:\ Users \ js \ AppData \ Local \ Continuum \ Anaconda2 \ PCbuild \ amd64 /   LIBPATH:C:\ Users \ js \ AppData \ Local \ Continuum \ Anaconda2 \ PC \ VS9.0 \ amd64 / EXPORT:inittradeclass build \ temp.win-amd64-2.7 \ Release \ tradecla   ss.obj" / OUT:h:\ Classification \ Classification Algos \ My Algo beta dist \ tradeclass.pyd" /IMPLIB:build\temp.win-amd64-2.7\Release\tradecl   ass.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\tradeclass.pyd.manifest

     

...

     

创建库build \ temp.win-amd64-2.7 \ Release \ tradeclass.lib和object build \ temp.win-amd64-2.7 \ Release \ tradeclass.exp   tradeclass.obj:错误LNK2019:函数__pyx_f_10tradeclass_betapdf中引用的未解析的外部符号lgamma

如果没有我的pyx-script中的lgamma函数,文件将被构建而不会出现任何错误。经过广泛的搜索后,我发现libc.math的C99函数(lgamma所属的)在Windows下运行有问题(我使用的是Windows 7)。

为什么这样,更重要的是我该怎么办才能在我的pyx-script中使用lgamma

(我使用python作为科学家,而不是开发人员,因此我对计算机和操作系统内部工作的了解非常有限,因为我在这些领域中使用的术语的词汇也是如此。)

0 个答案:

没有答案