我有一个 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代码。到目前为止,我的解决方案是将文件复制到文件夹中,运行该行代码,然后从文件夹中删除文件的副本。然而,我发现这个解决方案很混乱。mymodulemymodule/foofoo.cmymodulemymodule
您对如何优雅地做到这一点有任何想法吗?