1

最近、コンピューター (Windows 7、32 ビット) に Python 2.7 に加えて Python 3.3 をインストールしました。Python 3.3 では、.py ファイルの先頭に「シバン行」を追加できるため、実行時に使用する Python バージョンを選択できます。Pyscripter はこの「シバン行」を認識しないため、.py ファイルの最初の行を読み取り、対応する引数を使用して Pyscripter で開くプログラムを作成しました。次のようになります。

#!/usr/bin/env python2.7
from sys import argv
from os import system
if len(argv)>1:
    file = open(argv[1])
    shebang=file.readline()
    if shebang.split()[1] in {'python2','python2.7'}:
        system(r'C:\Python27\PyScripter.exe --python27 "'+argv[1]+'"')
    elif shebang.split()[1] in {'python3','python3.3'}:
        system(r'C:\Python33\PyScripter.exe --python33 "'+argv[1]+'"')
else:
    system(r'C:\Python27\PyScripter.exe --python27')
file.close()
exit()

次に、py2exe を使用してプログラムをコンパイルし、.py ファイルの標準操作として選択しました。.py ファイルを開くと、PyScripter は正しいバージョンの python を使用してファイルを開きますが、ファイルを保存しようとすると、次のように表示されます。

Error saving file: "C:\Users\...\Python\example.py".
Error: Cannot create file "C:\Users\...\Python\example.py". The process cannot acces the file because it is being used by another process

PyScripter を開くためのコンパイル済みプログラムはまだ実行中ですが、それを強制終了しても、そのメッセージが表示されます。プログラムによって開かれた cmd.exe ウィンドウでも同じことが起こります。Windows エクスプローラーでファイルを削除/名前変更/移動しようとすると、ファイルが現在 PyScripter.exe によって使用されているため、実行できないと表示されます。これを解決する方法を知っている人はいますか?

Python 3 用の py2exe がないため、PyScripter を開くプログラムは Python 2.7 です。

4

0 に答える 0