我有一个 python 代码,它将 C 代码链接到我想要运行的 Python 中。此代码位于mymodule/foo
包含两个文件的文件夹内:一个setup.py
文件和一个foo.c
文件。你通常要做的就是进入mymodule/foo
文件夹,然后做
python setup.py build
这将创建一个 .so 文件,然后您可以将其导入 python。我必须对文件夹中的几个子文件mymodule
夹执行此操作,因此我想通过os.system()
调用自动执行此操作。但是,当我在mymodule
文件夹中并执行此操作时:
os.system('python foo/setup.py build')
我明白了
gcc: error: foo.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
error: command 'gcc' failed with exit status 4
显然,该setup.py
文件试图在文件夹中而不是在文件夹中查找foo.c
代码。到目前为止,我的解决方案是将文件复制到文件夹中,运行该行代码,然后从文件夹中删除文件的副本。然而,我发现这个解决方案很混乱。mymodule
mymodule/foo
foo.c
mymodule
mymodule
您对如何优雅地做到这一点有任何想法吗?