我试图从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代码,我需要做些什么提前致谢
答案 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"])