0

我有一个 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

您对如何优雅地做到这一点有任何想法吗?

4

1 回答 1

1

使用os.chdir()将 setup.py 或 chdir 修复到所需目录。

于 2013-01-18T06:20:00.730 回答