[解決済み】「WindowsError: [エラー2]システムが指定されたファイルを見つけることができません」が解決されない
質問
py2exeを使用して、いくつかのファイルを持つ私のPythonプロジェクトのexeファイルを作成しました。 このexeファイルを私のシステムで実行すると、正常に動作しますが、別のシステムで実行すると、ログインフォームが開き、その後、2番目のpythonファイルに書いた次のウィンドウに移動しません。
Traceback (most recent call last):
File "login.py", line 246, in DataReader
File "subprocess.pyo", line 711, in __init__
File "subprocess.pyo", line 948, in _execute_child
WindowsError: [Error 2] The system cannot find the file specified
重複した質問であることは承知していますが、stackoverflowの多くの解決策を試しましたが、この問題を解決することができませんでした。誰かがこの問題を解決するために私を助けてください。
そして、ログインに成功した後、このコードによってstart.pyファイルに移動しますが、移動せず、上記のエラーを出します。
subprocess.call(["python", "./start.py"])
ありがとうございました。
どのように解決するのですか?
ここで、少なくとも2つの問題があります。
まず
python
を実行ファイルとして使用します。
あなたのシステム上では
python
の上に
%PATH%
であり、それは
右
Pythonのバージョン、依存するモジュールなど、すべて。しかし、すべてのユーザーをそれに依存させることはできません。もしそれが可能なら、わざわざ
py2exe
を使うようになりました。
そして明らかに、あなたがテストしているもう一台のマシンには
python
の上に
%PATH%
で、WindowsError 2が発生します。
何はともあれ、このような場合に実行したいのは 同じ スクリプトが使っているPython
一方
start.py
は、現在の作業ディレクトリにあるはずです。親スクリプトと同じディレクトリにあることが望ましいのですが、それは作業ディレクトリではありません。通常、Windowsのプログラムは、C: \とか、WINNTディレクトリとか、ユーザーのホームディレクトリとかで起動しますし、バージョンによっても違います。
もちろん、開発中は、スクリプトを実行するたびに、スクリプトのディレクトリを作業ディレクトリとして、コマンドプロンプトを使用しているか、事実上同等のことを行うIDEを使用しているはずです。だから、たまたまうまくいくのです。しかし、.exeから実行する場合は、それをあてにすることはできません。
(こちらはデバッグがさらに楽しくなりそうです。サブプロセスは正常に開始され、何も目に見えることをせずにすぐに終了します。終了コードや標準エラーメッセージをチェックしないので、親スクリプトは何か問題があったことを知ることができませんが、これはデバッグを楽しくしてくれます。デバッグが楽しくなります。
check_call
ではなく
call
.)
とにかく、自分のスクリプトと同じディレクトリにある別のスクリプトを探させたい場合は、そう明示する必要があるのです。
そこで、この2つの問題を解決するために
import os
import sys
mypath = os.path.abspath(__file__)
mydir = os.path.dirname(mypath)
start = os.path.join(mydir, "start.py")
subprocess.call([sys.executable, start])
最後にもうひとつ、あなたのコメントから、あなたが実際にバンドルしているのかどうかさえわかりません。
start.py
を配布可能なパッケージの中に全く入れていません。あなたのマシンで動作している場合、それは明らかに
C:\Python27\start.py
. しかし、あなたがテストしているマシンでは...それはどこにも存在しないのでしょうか?もしなければ、明らかに実行できないでしょう。
のようなツール
py2exe
は自動的に
import
を経由して別のインタプリタインスタンスでスクリプトを実行する場合は、このようなことはありません。
subprocess
ということを伝える必要があります。
setup.py
を含むようにします。
関連
-
pythonを使ったオフィス自動化コード例
-
python string splicing.join()とsplitting.split()の説明
-
Python百行で韓服サークルの画像クロールを実現する
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】Flaskのテンプレートが見つからない【重複あり