【发布时间】:2010-12-07 12:08:23
【问题描述】:
我有这个 C 程序,至少我认为是(文件:spa.c、spa.h)。有什么方法可以在不向 Python 解释器传递额外参数的情况下从 Python 执行这个脚本(如果没有,参数是什么?)
更新:感谢您的回复。源码在http://www.nrel.gov/midc/spa/#register
(请不要被网址中的“注册”吓到,如果您填写表格,您可以立即下载文件(没有验证邮件等)我会尝试您的建议并报告结果。
更新 2:我使用 gcc 编译了源代码,但现在它在尝试调用()时给了我一个权限被拒绝,即使以 root 身份运行 python(我在 Ubuntu 10:10 上) .
更新 3 [Errno 8] 执行格式错误
更新 4 好的,我搞定了。程序使用 printf 输出值:
>>> call(['/path'])
Julian Day: 2452930.312847
L: 2.401826e+01 degrees
B: -1.011219e-04 degrees
R: 0.996542 AU
H: 11.105902 degrees
Delta Psi: -3.998404e-03 degrees
Delta Epsilon: 1.666568e-03 degrees
Epsilon: 23.440465 degrees
Zenith: 50.111622 degrees
Azimuth: 194.340241 degrees
Incidence: 25.187000 degrees
Sunrise: 06:12:43 Local Time
Sunset: 17:20:19 Local Time
谢谢大家!
【问题讨论】:
-
您能否在此处发布您的
spa.c的一些摘录(或者,更好的是,整个代码)?尽管确实存在一些类似 C 的脚本实现,但通常 C 是一种编译语言。即使你找到一些用 Python 编写的 C 解释器,让任意 C 程序在其中工作的机会也很小。 -
据我所知,没有任何参数可以将 Python 解释器转换为 C 编译器。但是您可以使用 python ctypes 从 dll 或共享库中运行 C 代码。