cython编码报错
问题描述:
appleyuchi@Ubuntu16:~/桌面/test$ cython fib.py --embed
Traceback (most recent call last):
File "/usr/bin/cython", line 8, in <module>
main(command_line = 1)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 704, in main
result = compile(sources, options)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 679, in compile
return compile_multiple(source, options)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 657, in compile_multiple
result = run_pipeline(source, options, context=context)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 487, in run_pipeline
err, enddata = Pipeline.run_pipeline(pipeline, source)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Pipeline.py", line 328, in run_pipeline
data = phase(data)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/Pipeline.py", line 53, in generate_pyx_code_stage
module_node.process_implementation(options, result)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/ModuleNode.py", line 118, in process_implementation
self.generate_c_code(env, options, result)
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/ModuleNode.py", line 352, in generate_c_code
self.generate_filename_table(globalstate['filename_table'])
File "/usr/lib/python2.7/dist-packages/Cython/Compiler/ModuleNode.py", line 709, in generate_filename_table
if root_path.startswith(workdir):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 17: ordinal not in range(128)
下面是问题重现,代码来自:
https://www.cnblogs.com/yafengabc/p/6130849.html
这个博客中的fib.py如下:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import timedef fib(n):if n==0:return 0if n==1:return 1return fib(n-1)+fib(n-2)
t=time.time()
print(fib(10))
print(time.time()-t)
使用python fib.py能直接出结果
但是使用cython fib.py --embed
就会报告上面的错误。
此时在fib.py最上面加入
import sys
reload(sys)
sys.setdefaultencoding('utf8')
会发现报错依旧。
下面是正确的解决方案:
在/usr/lib/python2.7/dist-packages/Cython/Compiler路径下的
Pipeline.py
Main.py
ModuleNode.py
三个文件的开头(root权限下操作)的
from __future__ import absolute_import
这句话的下面加入下面三行即可。
import sys
reload(sys)
sys.setdefaultencoding('utf8')
也就是说,这个报错,其实是cython库的报错,并不是fib.py的报错。
cython编码报错相关推荐
- 【编码】数据库编码报错
目录 编码报错: 编码截图(中文输出???) 原因分析: 解决方案: 步骤一 步骤二 乱码报错: [HY000][1366] Incorrect string value: '\xE7\xB3\xBB ...
- python2.7 end=号报错_python2 post 上传压缩文件编码报错
python版本是2.7,使用urllib2将文件推送至微信,在上传文件时,碰到这样一个问题:上传未经压缩的文本文件,可以成功:上传经过压缩的二进制文件,则提示编码错误 代码如下 def upload ...
- ubuntu安装mysql报错_解决Ubuntu 12.04中更改MySQL默认编码报错
Ubuntu 12.04,安装了MySQL,完了之后,更改了字符编译,就报错.感觉很郁闷. 环境: root@ubuntu:~# uname -a Linux ubuntu 3.2.0-23-gene ...
- ffmpeg编码报错:more samples than frame size (avcodec_encode_audio2)
fkd_aac默认有好几种采样范围,如下: 2048 HE-AAC v1/v2 1024: Default configuration.//AAC-LC 1024 512: Default lengt ...
- 解决 QRibbon 在VS+Qt 环境下的编码报错问题 “文本后缀无效; 未找到文文本运算符或文本运算符模板“
一.问题 在使用QRibbon时编译报错 "文本后缀无效; 未找到文文本运算符或文本运算符模板",是因为编码问题,需要将程序文件进行编码设置 二.解决方案 1.Visual Stu ...
- python读取文件编码报错解决
项目场景: python读取文件报错解决 问题一:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 问题二:Unic ...
- 关于with open() as f读取文件时编码报错问题
一般我们都是这样写,python3 with open(file_path, mode='r') as f:..... 但是有时候读取的内容有编码问题,会报错: UnicodeDecodeError: ...
- python 编码报错问题 'ascii' codec can't encode characters 解决方法
python在安装时,默认的编码是ascii, 当程序中出现非ascii编码时,python的处理常常会报这样的错 'ascii' codec can't encode characters pyth ...
- Python编码报错 TypeError: unhashable type set
问题: TypeError: unhashable type set class FTP(object):def __init__(self,ip,user,passwd) :self.ip = ip ...
最新文章
- Linux下redis的安装
- 在Windows Server 2012中如何快速开关桌面上经典的“计算机、我的文档”等通用图标...
- Linux 跟踪进程对CPU的占用情况,对内存的占用情况
- Exchange 2007 申请多域名证书
- 适合STM32的三大嵌入式操作系统
- django Sometimes request.session.session_key is None
- 学法减分助手PRO小程序
- 实例变量与局部变量的区别 java 1615135277
- php文件上传接口测试,七牛云存储-用php上传图片,我在本地测试,用php接口,不成功...
- Python访问MySQL数据库速度慢解决方法
- java poi 读取Excel中的手机号
- (高级)Matlab绘制中国地图超全教程详解
- Unity3D场景制作基本操作
- OSChina 周二乱弹 ——女孩在身上纹了个四叶草
- VC 关于CEdit基本用法
- “图书管理系统”数据视图
- 安装anaconda时报错“failed to create menus”尝试各种解决方法
- 软件测试之测试主流技能
- OpenCVSharp入门教程 特征提取③——HoughLinesP直线寻找,直线提取
- Git从本地向TFS push项目