什么是pyximport?我应该如何使用它?

2024-06-07 00:58:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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.install()编写的旧代码。我不知道它是做什么的,为什么要用它,因为我已经在自己编译代码了。那么,有人能用一种非常简单的方式(对于傻瓜)向我解释一下派克西姆波特是做什么的吗?

其他信息: 我有一个使用cython的项目。 我有一个参考项目1的项目2。


Tags: 项目代码binwindowsmyprojectfilescallprogram
2条回答

您可以使用pyximport自动重新编译并重新加载.pyx模块。

删除生成的setup.py,否则您可能会加载扩展模块。 pyximport不使用setup.py

让我们假设一个带函数的hello.pyx

启动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'

pyximport是Cython的一部分,它在某种程度上代替了import

如果您的模块不需要任何额外的C库或特殊的生成设置,那么您可以使用pyx import模块在导入时直接加载.pyx文件,而不必编写setup.py文件。可以这样使用:

>>> import pyximport; pyximport.install()
>>> import helloworld
Hello World

直接从Cython documentation

相关问题 更多 >