2

こんにちは、エンド ユーザーが Python スクリプトを実行できるアプリケーションを作成しました。アプリケーションの主要部分は python で記述されています。これは、pyinstaller を使用して exe にコンパイルしたもので、アプリケーションの一部が正常に動作することは問題ありません。

次に、このアプリケーションは python を埋め込んだ DLL を呼び出します。これにより、エンド ユーザーの python スクリプトが呼び出されます。私がテストしていたときには問題はありませんでしたが、pyinstaller を使用してプログラムをコンパイルすると、DLL は "ImportError: No module named site" というエラーを出力します。

私はPython 2.7でWindowsを使用しています。

他の投稿からわかることから、これはPYTHONHOME PYTHONPATH環境変数の問題であり、DLL内から設定できると確信しています。ただし、エンド ユーザーのコンピューターに Python がインストールされていない可能性があることを考慮すると、Python 2.7 の完全なインストールと、PYTHONHOME および PYTHONPATH をそのインストールに変更するプログラムを提供する必要がありますか? これは正しい方法ですか?

4

2 に答える 2

0

これを機能させる唯一の方法は、python 2.7 の一部をアプリケーションと共に配布することでした。つまり、python が埋め込まれた実行可能ファイルと同じフォルダー内のディレクトリ Python27 の下にある Lib および DLLs ディレクトリです。

これにより、ユーザーが python をインストールしていない可能性があるという問題が解決され、アプリケーションのローカルの python "home" に独自のモジュールを追加できるようになりました。これは基本的に、これを私が望むようにするために最終的に行ったことです。

https://stackoverflow.com/a/2970407/722634

于 2013-03-16T15:43:37.560 に答える
0

あなたは正しいです。エンド ユーザーは、自分のシステムに Python がなくても、exe を実行できるはずです。代わりに、エンドユーザーが exe を実行すると、exe は pyx,pyo ファイルを呼び出す必要があります。そして、それらのファイルは pyinstaller によってパッケージ化されます。また、それらのpyx、pyoファイルへのパスを指していることを確認する必要があります

于 2013-03-16T11:51:01.313 に答える