我开始在配置了Python 2.6的windows xp机器上玩cython。我试图在Cython站点上运行这个简单的例子,但是示例.pyx文件的转换立即失败并出现了令人困惑的错误。
.pyx文件是
def say_hello_to(name):
print("Hello, %s" % name)
setup.py看起来像
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [Extension("hello", ["hello.pyx"])]
setup(
name = 'Hello world app',
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules
)
在命令窗口中,我执行命令
python setup.py build_ext --inplace
请注意,这一切正是网页所说的。
结果,我得到以下输出:
Error converting Pyrex file to C:
--------------------------------------------------------
...
def say_hello_to(name):
^
--------------------------------------------------------
错误消息显示“无法识别的字符”。
我在linux盒子上尝试相同的例子,它运行正常。
这里有什么问题,为什么冒号被标记为无法识别?
答案 0 :(得分:2)
(重新作为答案,因为它显然解决了问题)
只是一个猜测,但它可能遇到线路结束的问题?例如。如果该文件具有Unix '\n'
行结尾,但在Windows上它期望Windows '\r\n'
行结尾?
'\n'
行结尾,编辑器将它们转换为'\r\n'
。