0

プログラムを更新するPythonスクリプトがあります(フォルダーをクリアして新しいファイルをコピーします)。正常に動作しますが、スクリプトから生成された* .exeファイル(py2exeを使用)を実行すると、エラーメッセージが表示されます。

Traceback (most recent call last):
  File "update.py", line 10, in <module>
  File "shutil.pyc", line 254, in rmtree
  File "shutil.pyc", line 252, in rmtree
WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'C:\\Project\\MyProg\\Prog\\app'

これが私のスクリプトです:

app = 'C:\\Project\\MyProg\\Prog\\app'
update = 'C:\\Project\\MyProg\\Prog\\update'

os.system("taskkill /im file.exe /f")

time.sleep(2)

shutil.rmtree(app)
shutil.move(update, app)

newpath = update
if not os.path.exists(newpath):
    os.makedirs(newpath)

with open('info', 'w') as f:
    f.write("updated")
subprocess.call(['C:\\Project\\MyProg\\Prog\\app\\file.exe'])
4

1 に答える 1

0

ファイルで py2exe を使用する前に、スクリプトを閉じます。実行されていない場合は、タスク マネージャーのプロセス リストに移動し、スクリプトが実行されていないことを確認します。通常、説明の下に単に python として表示されます。右クリックして終了プロセスを選択し、確認します。

于 2012-09-26T02:14:14.350 に答える