hashtag的Python非ascii错误

时间:2014-09-18 20:41:20

标签: python non-ascii-characters

我试图从Python脚本调用C可执行文件。显然,我的C代码在开始时已经包含了#include,当我从Python调用C可执行文件时,它给了我错误。我使用subprocess.call来调用可执行文件,如下所示:

>>> subprocess.call([sys.executable,"motor_control","50","1","50","1"])

我收到以下错误:

File "motor_control", line 1
SyntaxError: Non-ASCII character '\xdd' in file motor_control on line
2, but no encoding declared; see
http://www.python.org/peps/pep-0263.html for details 1

第1行,第2行等都有' #include' s。 Motor_control是可执行文件,它有数字参数50,1,50,1。我从终端运行motor_control并运行正常。我搜索了很多,但大多数类似的错误是针对其他非ascii字符的,我没有找到与' \ xdd'相关的任何答案,这是' #include'的标签。这意味着没有人在#include' s中收到错误,这意味着我错过了一些非常基本的东西。但我不确定是什么。

此处还有其他一些答案,例如: SyntaxError of Non-ASCII character 提到添加

 # -*- coding: utf-8 -*-

到python脚本的开头,但是这对我不起作用。添加

#!/usr/bin/python

也没有用,正如其他人提到的那样。

我在PCduino上运行此代码(C代码在c_environment中为pcduino执行(帮助这是here))。 Python和C在这个硬件上独立工作。 对于调用具有#?

的C代码,我需要做些什么

提前致谢

1 个答案:

答案 0 :(得分:1)

subprocess.call([sys.executable,"motor_control","50","1","50","1"])

上述命令将转换为/usr/bin/python motor_control 50 1 50 1并执行

所以你所做的就是将excutable传递给错误的python解释器

试试这个:

subprocess.call(["/pathtoexecutable/motor_control","50","1","50","1"])