Cython的PyCharm设置

Cython的PyCharm设置,pycharm,cython,Pycharm,Cython,我明白了 我总是可以在终端中编译和运行,但我想知道是否有办法在PyCharm中实现这一点。在链接中,它说:“编译是使用外部工具完成的。首选的构建系统(Makefile、setup.py等)应该配置为外部工具。”我想知道如何进行这种配置。一个使用Cython的PyCharm中的Hello World小示例将不胜感激 谢谢你在这里回答我自己的问题: 假设我们有函数fib.pyx: 此处包含ext\u选项,用于生成带有注释的html文件。要运行此文件,必须转到工具-->运行setup.py任务。然后键

我明白了

我总是可以在终端中编译和运行,但我想知道是否有办法在PyCharm中实现这一点。在链接中,它说:“编译是使用外部工具完成的。首选的构建系统(Makefile、setup.py等)应该配置为外部工具。”我想知道如何进行这种配置。一个使用Cython的PyCharm中的Hello World小示例将不胜感激


谢谢你在这里回答我自己的问题:

假设我们有函数fib.pyx:

此处包含
ext\u选项
,用于生成带有注释的html文件。要运行此文件,必须转到工具-->运行setup.py任务。然后键入
build\u ext
作为任务名称,并在提示输入命令行输入类型时键入
--inplace
。生成文件fib.c、fib.o和可执行文件fib.so。还将创建注释文件fib.html

现在,以下代码应该可以在任何python文件中使用,例如main.py:

  • 更简单的方法是使用pyximport。不需要安装文件。请注意,只有当文件main.py现在看起来像:

    import pyximport; pyximport.install()
    import fib
    fib.fib(2000)
    
    据我所知,即使fib.c、fib.o和fib.so文件最终不在项目文件夹中,也会进行相同的代码编译。也不会生成fib.html代码,但可以通过在主文件中添加两行代码来解决此问题。使用新行main.py现在是:


  • 除了这些说明之外,我们还必须确保PyCharm知道包fodler包含Python模块,否则它将忽略它。查看如何添加包中的函数?我的意思是我的main.py在根目录中,我有一个名为“my_package”的包,其中有“my_py_file.py”,里面有“my_function()”。如果我将我的“my_py_file.py”重构为“my_py_file.pyx”,并使用您的第二种方法,我会在main.py中得到错误:将my_package.my_py_文件作为mpf模块导入my_package.my_py_文件。错误:没有名为“my_package.my_py_py_file”的模块。我有一个关于在PyCharm中调试Cython代码的问题。你想看看有什么建议吗?
    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)
    )
    
    import fib
    fib.fib(2000)
    
    import pyximport; pyximport.install()
    import fib
    fib.fib(2000)
    
    import pyximport; pyximport.install()
    import subprocess
    subprocess.call(["cython", "-a", "fib.pyx"])
    import fib
    fib.fib(2000)