Cコードを実行したいPythonにリンクするPythonコードがあります。このコードは、ファイルとファイルmymodule/foo
の 2 つのファイルを含むフォルダー内にあります。あなたが通常しなければならなかったことは、フォルダに入って、setup.py
foo.c
mymodule/foo
python setup.py build
これにより、Python にインポートできる .so ファイルが作成されます。フォルダー内のいくつかのサブフォルダーに対してこれを行う必要があるため、呼び出し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
これをエレガントに行う方法について何かアイデアはありますか?