所以,我猜这是其中一个涉及的数据包的错误,我想报告它,但我真的不明白错误在哪里,所以我试图定义它并描述解决方案。
我最近升级到Ubuntu 14.4并且非常高兴能够以我自己的语言使用它,当我遇到错误时,这是由于语言的变化:
当尝试使用.pyx
编译cython distutils
文件时,如果文件位于包含非ascii符号的路径中,则编译将以 unicode错误中止。在我的情况下,桌面路径已重命名为德语版本"Arbeitsfläche"
,在编译时似乎存在问题。
有人可以告诉我这是一个错误还是一个功能(如果是前者,在哪里提交)?
完整性的堆栈跟踪:
Compiler crash traceback from this point on:
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Nodes.py", line 6785, in analyse_declarations
module_scope = env.find_module(self.module_name, self.pos)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Symtab.py", line 1089, in find_module
module_name, relative_to = self.parent_module, pos = pos)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 132, in find_module
pxd_pathname = self.find_pxd_file(qualified_name, pos)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 184, in find_pxd_file
pxd = self.search_include_directories(qualified_name, ".pxd", pos, sys_path=True)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 225, in search_include_directories
tuple(self.include_directories), qualified_name, suffix, pos, include, sys_path)
File "/usr/lib/python2.7/dist-packages/Cython/Utils.py", line 16, in wrapper
res = cache[args] = f(*args)
File "/usr/lib/python2.7/dist-packages/Cython/Utils.py", line 101, in search_include_directories
path = os.path.join(dir, dotted_filename)
File "/usr/lib/python2.7/posixpath.py", line 80, in join
path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 23: ordinal not in range(128)
编辑18.8.2014
可以找到一个最小的例子here。似乎import cython
语句触发了行为。
答案 0 :(得分:1)
在我将参数替换为setup
ext_modules=linext,
cmdclass = {'build_ext': build_ext}
使用current cython documentation中鼓励的版本:
ext_modules=cythonize(linext)
根据你找到你的版本的位置,在Cython中确实存在一个错误,或者你只是尝试了一些不起作用的错误。