Cコードを実行したいPythonにリンクするPythonコードがあります。このコードは、ファイルとファイルmymodule/fooの 2 つのファイルを含むフォルダー内にあります。あなたが通常しなければならなかったことは、フォルダに入って、setup.pyfoo.cmymodule/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.cmymodulemymodule/foofoo.cmymodulemymodule
これをエレガントに行う方法について何かアイデアはありますか?