【问题标题】:PyCharm does not recognize a .pyx Cython filePyCharm 无法识别 .pyx Cython 文件
【发布时间】:2019-01-13 01:51:29
【问题描述】:

我正在尝试在 Python 脚本中调用 Cython 文件。我已阅读 this answer 并按照说明进行操作。然而,即使我已经成功编译了 C 代码,PyCharm 在执行导入命令时也无法识别 Cython 文件“hello.pyx”,如下面的屏幕截图所示。有什么办法?

Cython 文件hello.csetup.py 生成,其内容如下所示。

from distutils.core import setup
from Cython.Build import cythonize

setup(name='Hello world app',
      ext_modules=cythonize("hello.pyx")
      )

【问题讨论】:

  • 您的屏幕截图没有显示任何编译结果。你安装正确了吗?
  • @Bakuriu:C 代码是使用setup.py 编译的。我在上面的问题中添加了详细信息。请查看。
  • 是的,但是编译是不够的,你必须在你的 virtualenv/interpreter 中安装那些。
  • @Bakuriu:我该怎么做?

标签: python cython


【解决方案1】:

当您使用 cythonize 编译模块时,生成的模块将被放入子文件夹中。默认情况下,此子文件夹不在 PATHS 列表中。要解决此问题,您只需将生成的文件 .dll 文件移动到 hello.py 和 hello.pyx 所在的文件夹中。

另一种方法是像这样添加扩展:

from distutils.core import setup
from Cython.Build import cythonize

from distutils.extension import Extension
exts = [Extension(name='hello',sources=['hello.pyx'])]

setup(name='Hello world app',
      ext_modules=cythonize(exts)
      )

然后编译:

python setup.py build_ext --inplace

此代码会将生成的 .dll 放入与源文件相同的文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-05
    • 2012-07-26
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 2020-11-25
    相关资源
    最近更新 更多