私は、Win7マシンのProgram Files(x86)フォルダにインストールしようとしているEXEをビルドしました。本当に面白い振る舞いが続いています。このプログラムは、インターフェイスを処理するためにwx-PythonとXRCを使用しています。配布物にXRCフォルダを含めます。このプログラムは、getcwd()を使用して自身を検索し、xrcフォルダを検索します。しかし、これは本当に興味深いことです。プログラムをProgram Filesに置くとうまくいきます。 Program Files x86フォルダにプログラムを配置すると、xrcフォルダが見つからないことを示すメッセージが表示されます。
私は、このアプリケーションがプログラムファイル内のXPマシンとVistaマシン、およびプログラムファイル内のWin7マシンで正常に動作することを明示してください。Progam Files X86とWin7のProgram FIlesから実行したときのPython exe動作が異常になっていますか?
ここで興味深いのは、プログラムのEXEをダブルクリックした場合ですファイル(x86)フォルダは正常に動作しますが、起動/プログラムメニューに追加されたショートカットを実行しようとすると正しく動作しません。プログラムがxrcフォルダを見つけられないことを示すエラーメッセージが表示されます。私はまた、デスクトップ上のフォルダにプログラムを移動し、ルートと他のすべての場所で起動し、正常に実行されます。したがって、私は自分のコードがxrcフォルダを指すことが良いと確信しています。
だから質問に戻る。プログラムがx86フォルダから実行されているときに、パス参照が不正になるようなことが起こっていますか?もっと重要なのは修正可能ですか?
最後に、問題がxrcフォルダへのパスに関連していることをできるだけ確認するために、アプリケーションの2つのインスタンスからxrcフォルダを削除し、プログラムがあったときに同じエラーメッセージが表示されるx86フォルダーにインストールされます。
私はスタートメニューやexeファイルにショートカットを使用するときだけ明確化のためのプログラムが実行されません唯一の時間であり、すべての部品が
Plasticsabersがanswerreally助けたプログラムファイル(x86の)フォルダに保存されています私は問題を理解しており、私はそれを修正することができました。これはVistaのverus XPの問題ではなく、32ビットのOSと64ビットの問題です。
64ビットXPと32ビットWin7で実行する必要があります。
なぜProgram Filesディレクトリにインストールされているバージョンで動作しますか?注目すべきは、私は数多くの場所にインストールされた全く同じアプリについて話しており、すべてのケースでスタートメニューにショートカットをインストールしました。あなたがこれを明確にすることができれば、私はそれを感謝します。 – PyNEwbie
他のインストールへのリンクの中にフォルダを見つけることを可能にする「開始」フォルダがあれば、別の場所にインストールしても動作します。 –
これを処理する典型的な方法は、sys.argv [0]から実行可能ファイルを起動し、それをos.path.abspath()に渡し、途中でパスすることです。 –