Cython 的 PyCharm 设置
Setup of PyCharm for Cython
我总是可以在终端中编译和 运行,但我想知道是否有办法在 PyCharm 中执行此操作。在 link 中它说: "Compilation is done using external tools. The preferred build systems (Makefile, setup.py, etc.) should be configured as external tools." 我想知道如何进行此配置。 PyCharm 使用 Cython 的 Hello World 小例子将不胜感激。
谢谢
在这里回答我自己的问题:
假设我们有函数 fib.pyx:
def fib(n):
"""Print the Fibonacci series up to n."""
a, b = 0, 1
while b < n:
print b,
a, b = b, a + b
有两种编译方式运行这个
使用安装文件。使文件setup.py:
from distutils.core import setup
from Cython.Build import cythonize
ext_options = {"compiler_directives": {"profile": True}, "annotate": True}
setup(
ext_modules = cythonize("fib.pyx", **ext_options)
)
这里包含ext_options
生成带注释的html文件。要 运行 此文件,您必须转到 工具 --> 运行 setup.py 任务 。然后输入 build_ext
作为 任务名称 并在提示输入 命令行 时输入 --inplace
。文件 fib.c、fib.o 和可执行文件 fib.so 生成。注释文件fib.html也被创建。
现在,以下代码应该可以在任何 python 文件中使用,例如 main.py:
import fib
fib.fib(2000)
更简单的方法是使用 pyximport。不需要安装文件。请注意,只有在 "your module doesn’t require any extra C libraries or a special build setup." 文件 main.py 现在应该看起来像:
import pyximport; pyximport.install()
import fib
fib.fib(2000)
据我了解,即使 fib.c、fib.o[=55= 也会发生相同的代码编译] 和 fib.so 文件最终不会出现在项目文件夹中。 fib.html 代码也不会生成,但这可以通过在主文件中添加两行来解决。使用新行 main.py 现在是:
import pyximport; pyximport.install()
import subprocess
subprocess.call(["cython", "-a", "fib.pyx"])
import fib
fib.fib(2000)
我总是可以在终端中编译和 运行,但我想知道是否有办法在 PyCharm 中执行此操作。在 link 中它说: "Compilation is done using external tools. The preferred build systems (Makefile, setup.py, etc.) should be configured as external tools." 我想知道如何进行此配置。 PyCharm 使用 Cython 的 Hello World 小例子将不胜感激。
谢谢
在这里回答我自己的问题:
假设我们有函数 fib.pyx:
def fib(n):
"""Print the Fibonacci series up to n."""
a, b = 0, 1
while b < n:
print b,
a, b = b, a + b
有两种编译方式运行这个
使用安装文件。使文件setup.py:
from distutils.core import setup from Cython.Build import cythonize ext_options = {"compiler_directives": {"profile": True}, "annotate": True} setup( ext_modules = cythonize("fib.pyx", **ext_options) )
这里包含
ext_options
生成带注释的html文件。要 运行 此文件,您必须转到 工具 --> 运行 setup.py 任务 。然后输入build_ext
作为 任务名称 并在提示输入 命令行 时输入--inplace
。文件 fib.c、fib.o 和可执行文件 fib.so 生成。注释文件fib.html也被创建。现在,以下代码应该可以在任何 python 文件中使用,例如 main.py:
import fib fib.fib(2000)
更简单的方法是使用 pyximport。不需要安装文件。请注意,只有在 "your module doesn’t require any extra C libraries or a special build setup." 文件 main.py 现在应该看起来像:
import pyximport; pyximport.install() import fib fib.fib(2000)
据我了解,即使 fib.c、fib.o[=55= 也会发生相同的代码编译] 和 fib.so 文件最终不会出现在项目文件夹中。 fib.html 代码也不会生成,但这可以通过在主文件中添加两行来解决。使用新行 main.py 现在是:
import pyximport; pyximport.install() import subprocess subprocess.call(["cython", "-a", "fib.pyx"]) import fib fib.fib(2000)