我还没有找到很多关于这个的信息,但是当我试图用cython编译我的一个python脚本时,它给出了一个错误:
Error compiling Cython file:
------------------------------------------------------------
...
import traceback #line:24
import bcrypt #line:25
Y =str (os .path .dirname (os .path .abspath (__file__ )))#line:28
IH =open #line:29
IA =str #line:30
IK =print #line:31
^
------------------------------------------------------------
headlessobfu.pyx:29:4: Expected an identifier or literal
Traceback (most recent call last):
File "setup.py", line 5, in <module>
ext_modules = cythonize("headlessobfu.pyx")
File "C:\Users\justi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\Cython\Build\Dependencies.py", line 1026, in cythonize
cythonize_one(*args)
File "C:\Users\justi\AppData\Local\Programs\Python\Python36-32\lib\site-packages\Cython\Build\Dependencies.py", line 1146, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: headlessobfu.pyx
我还没有找到这个错误的确切原因。我可以得到简单的脚本来编译。python本身运行得很好。我的python格式有问题吗?在
下面是我正在运行的命令行参数:
^{pr2}$如果有人有解决办法,请告诉我。谢谢。在
所以这和cython和python格式有关。代码必须完全混淆,没有错误,否则编译器将无法工作。因此,请仔细检查编译器,并在出现错误时将其修复。希望这有帮助。在
默认情况下,Cython采用python2语法,即使使用python3也是如此。以下是您应该创建的最少、完整的示例:
赛欧印花_测试.pyx在
如果我用Cython编译它
^{pr2}$我收到了你的错误信息。
print
不是标识符或文本,因为在python2语法下,它是一个特殊语句。在但是,如果将Cython设置为使用Python 3语法编译它:
它工作得很好-在python3语法下print是一个函数,因此这非常有意义。在
获取Python3语法的另一种方法是将以下行添加到.pyx文件的开头
或者将其指定为
setup.py
中的编译器指令:(请注意,您的
setup.py
也应构成问题中最小、完整示例的一部分)相关问题 更多 >
编程相关推荐