我想在Linux环境下使用python和cython,所以我试图使用在cython文档中提到的primes.pyx
示例。ImportError:没有模块命名素数
我在xyz
目录中创建了primes.pyx
目录,我使用cython primes.pyx
编译了该文件。调用python解释器,然后尝试导入素数后,我遇到了以下问题。
ImportError: No module named primes
有些身体可以帮助我。
我想在Linux环境下使用python和cython,所以我试图使用在cython文档中提到的primes.pyx
示例。ImportError:没有模块命名素数
我在xyz
目录中创建了primes.pyx
目录,我使用cython primes.pyx
编译了该文件。调用python解释器,然后尝试导入素数后,我遇到了以下问题。
ImportError: No module named primes
有些身体可以帮助我。
这听起来好像它可能已经忘了导入,让您导入直.pyx
文件没有setup.py
模块的情况下。关于这方面的文档可以在here找到。
尝试增加
import pyximport; pyximport.install()
您模块的顶部,或者试图import primes
之前在解释运行它。
哇你的建议工作,非常感谢jdotjdot89帮助我。 – user1733051
非常感谢你们所有的人。 – user1733051
很高兴我能帮到你。如果这对你有用,你应该接受这个答案,以便将来的读者知道。 – jdotjdot
需要编译Cython模块才能使用它们。您有两个(好的)选项:为模块创建一个setup.py
,如this page所述,或使用pyximport
自动编译和构建模块,只需import
。
如果您的模块具有其他库依赖性,或分布在多个文件中,则第一种选择最为合适。第二种选择最适合小型独立模块。
要使用pyximport
,请在导入任何Cython模块之前添加import pyximport; pyximport.install()
。然后,当你使用Cython模块时,Cython将根据需要自动编译该模块。
我能够导入pyximport; pyximport.install()工作。我有点卡住试图导入使用setup.py。我创建了hello.pyx示例,如文档所示,在创建setup.py的同一目录中,然后执行了cython hello.pyx和python setyp.py build_ext --inplace,然后启动python并从hello运行import say_hello_to,我不确定如何执行该模块。你能帮我吗。非常感谢。 – user1733051
你是否在你调用解释器的同一目录下有''primes.pyd''文件? –
我没有primes.pyd,我只有primes.pyx和primes.c。在编译该文件时,它提供了一个错误,指出找不到python.h – user1733051
这意味着您需要安装Python源代码。大多数Linux发行版都会有一个包。 –