0

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

これをエレガントに行う方法について何かアイデアはありますか?

4

1 に答える 1

1

os.chdir()を使用して、 setup.py または chdir を必要なディレクトリに修正します。

于 2013-01-18T06:20:00.730 に答える