1

これは、手動で実行せずに PyInstaller で Python コードをコンパイルするための私のプログラムです。

prog = raw_input('File to compile: ')
shutil.copy(prog,'C:\Users\Hydro\Desktop\Projects\Python\PyInstaller\\'+prog)
os.chdir('PyInstaller\\')
subprocess.call(['python', 'PyInstaller.py', prog, '--onefile'])
x = os.getpid()
print x
os.kill(x,9)
var = prog.split('.')
new_var = var[0]
os.chdir(new_var+'\\'+'dist')
shutil.copy(new_var+'.'+'exe','C:\Users\Hydro\Desktop\Projects\Python')
shutil.rmtree('C:\Users\Hydro\Desktop\Projects\Python\PyInstaller\\'+new_var)
os.remove('C:\Users\Hydro\Desktop\Projects\Python\PyInstaller\\'+prog)
raw_input('File Compiled. Press Enter to Exit')

プロセスが削除しようとしているディレクトリを使用しているため、これは機能しません。

PyIRCで理由を尋ねましたが、役に立ちませんでした..PIDも殺そうとしましたが、間違ったものを殺しています。

誰かが私を助けたり、コンパイル後にディレクトリを削除できない理由を教えてくれますか? だから私は解決策を思い付くことができますか?

4

1 に答える 1

1

あなたのアプリケーションは、削除しようとしているディレクトリを使用しているようです。次のコマンドを呼び出すos.chdir()と、ディレクトリを削除する前に、現在の作業ディレクトリを別のディレクトリに変更できます。

org_dir = os.getcwd()

... # your stuff

os.chdir(org_dir)
# delete the dir
于 2013-03-13T12:05:52.103 に答える