我使用用Cython来生成一个数学模型更快的代码。 我有一个很难编译代码,但不知何故,我设法做到使用.BAT:
setlocal EnableDelayedExpansion
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd" /x64 /release
set DISTUTILS_USE_SDK=1
C:\Python27\python.exe C:\gcsilve\trunk\myproject\myproject\cythonsetup.py build_ext --inplace
PAUSE
它运行确定...
我的问题是关于pyximport。 我有旧代码别人写的使用pyximport.install()。 我无法弄清楚它做什么和为什么我要使用它,因为我已经被自己编译代码。 因此,有人可以在(傻瓜)很简单的方法做什么pyximport解释一下吗?
其他信息:我有一个PROJECT1,使用用Cython。 我有一个项目2,引用PROJECT1。
pyximport是用Cython的一部分,它是用于替代import
的方式。
如果你的模块不需要任何额外的C库或特殊构建设置,那么你可以使用pyximport模块加载.pyx文件直接进口,而无需编写一个setup.py文件。 它可以像这样使用:
>>> import pyximport; pyximport.install()
>>> import helloworld
Hello World
直接从用Cython文件
您可以使用pyximport
自动重新编译和重新加载您.pyx
模块。
删除什么setup.py
已经产生,否则你可能会加载扩展模块。 pyximport
不使用setup.py
。
让我们假设一个hello.pyx
与函数mean2
。
启动IPython的。
In [1]: import pyximport In [2]: pyximport.install(reload_support=True) In [3]: from importlib import reload In [4]: import hello In [5]: hello.mean2(2,3)
结果:
Out [5]: 2.5
离开该窗口,并转到您的编辑器来更改hello.pyx
。
然后回到IPython的和类型
In [6]: reload(hello);import hello;hello.mean2(2,3)
你会看到一些文本通知关于重新编译。 然后新的结果:
Out[6]: 'Mean of 2 and 3 is 2.5'