問題タブ [py2exe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3175 参照

python - Py2exe: 静的ファイルを library.zip または exe ファイル自体に埋め込み、実行時にそれらに透過的にアクセスします

py2exe に静的ファイル (および/または静的ファイルのサブディレクトリ) を library.zip および/または exe ファイル自体 (zipfile=None) に埋め込み、実行時にコードからこれらの埋め込まれた静的ファイルに透過的にアクセスする方法はありますか?

ありがとう、マルコム

0 投票する
1 に答える
1862 参照

python - Py2exe を使用した PyCrypto

py2exeでPyCryptoを使用できますか? py2exeで任意のライブラリを使用できますか?

ありがとう、クリス

0 投票する
3 に答える
6992 参照

resources - Py2exe:exeファイル自体に静的ファイルを埋め込んでアクセスする

library.zip にファイルを追加する解決策を見つけました: Extend py2exe to copy files to the zipfile where pkg_resources can load them .

library.zip に exe が含まれていない場合、ファイルにアクセスできます。

ファイルを追加します:text.txt ディレクトリに:library.zip の foo/media。そして、私はこのコードを使用します:

pkg_resources を使ってみたのですが、「library.zip」を直接開くことができたので、何かわからないと思います。

私の質問は、library.zip が exe に埋め込まれている場合、どうすればこれを行うことができますか?

よろしくお願いします

ジャン・ミシェル

0 投票する
4 に答える
3382 参照

python - Windows Server は py2exe で生成されたアプリを実行できません

シンプルな Python スクリプトは、Python がインストールされていない Windows サーバーで実行する必要があります。

正常な dist サブディレクトリを生成する py2exe を、ローカル マシンで正常に動作する script.exe と共に使用しました。
しかし、サーバー (Windows Server 2003 R2) で実行すると、次
のメッセージが表示されます。システムは、指定されたプログラムを実行できません。

ERRORLEVEL は 9020 です。

何か案は?

0 投票する
4 に答える
17897 参照

python - Py2exe-win32api.pycImportErrorDLLのロードに失敗しました

py2exeを使用して、作成したPythonアプリケーションを配布しようとしています。すべてうまくいくようですが、別のマシンで実行すると、次のエラーで失敗します。

私はこれをグーグルで検索しましたが、あまり見つかりませんでしたが、次の提案を試しましたが無駄になりました。

win32apiの前にpywintypesとpythoncomをインポートしました(py2exeのsetup.pyとメインアプリケーション)setup.pyにコードを追加しました-

私はこれらすべてにまったく慣れていないので、どんな助けでも大歓迎です

ありがとう

ジョン

0 投票する
1 に答える
582 参照

python - Windows 98 でネットワーク経由で py2exe プログラムにアクセスすると、ImportErrors がスローされる

私はpy2exeでコンパイルされたpythonプログラムを1台のサーバーマシンから多数のクライアントマシンで実行しています(すべてのマシンのネットワークドライブにマップされています.W :など)。

Windows XP 以降のマシンでは、これまでのところ、Python が W:\python23.dll を拾うという問題はありませんでした (はい、私は W98 との互換性のために Python 2.3.5 を使用しています)。次に、W:\zlib.pyd を使用して、os などのすべての .pyc ファイルを含む W:\library.zip を解凍します。これらはインポートされ、プログラムは問題なく実行されます。

この問題は、一部の Windows 98 SE マシンで発生しています (注: 一部の Windows 98 SE マシン、その他は明らかな問題なく動作するようです)。何が起こるかというと、プログラムは W: から実行され、W:\python23.dll が見つかったと思います (Python の ImportErrors が発生しているため、Python の import ステートメントを実行できる必要があります)。いくつかのことが機能しません:

1) W:\library.zip に .pyc ファイルの唯一のコピーが含まれている場合、 ZipImportError: can't decompress data; zlib not available(W:\zlib.pyd が利用可能であり、同じネットワーク上の XP 以降のマシンで正常に動作することを考えるとナンセンスです)。

2) .pyc ファイルが py2exe によって python exe 内に実際にバンドルされている場合、または .exe と同じディレクトリに置かれている場合、または PYTHONPATH 変数の一部として設定される名前付きサブディレクトリに置かれている場合 (例: W:\pylib) )、取得しますImportError: no module named os(os は、sys などの前にインポートされた最初のモジュールです)。

考えてみると、osがインポートされる前にsys.pathを検索できなかったのでしょうか?これらのインポートの順序を変更してみますが、私の疑問はまだ残っています:なぜこれは散発的な問題で、一部のネットワークでは機能し、他のネットワークでは機能しないのですか? また、実行する実行可能ファイル内にバンドルされているファイルを Python に強制的に検索させるにはどうすればよいでしょうか。私は稼働中の Windows 98 SE マシンにすぐにアクセスできますが、稼働していないマシン (私の顧客) には、毎朝店が開く前にしかアクセスできません。

前もって感謝します!


編集:さて、大きな一歩前進。PY2EXE_VERBOSE でデバッグした後、特定の W98SE マシンで発生する問題は、インポートを探すときに正しいパス構文を使用していないことです。まず、PYTHONPATH 環境変数を読み取っていないようです (PY2EXE_VERBOSE のように、私が認識していない py2exe 固有のものがある可能性があります)。

第 2 に、あきらめる前に 1 か所だけを検索します (ファイルが EXE 内にバンドルされている場合は、そこを検索します。そうでない場合は、library.zip を検索します)。

EDIT 2 : 実際、thisによると、Python インタープリターの sys.path と Py2exe 実行可能ファイルの sys.path には違いがあります。具体的には、sys.path contains only a single entry: the full pathname of the shared code archive.何とか。フォールバックはありませんか?現在の作業ディレクトリでさえありませんか?PATH に追加してみW:\ますが、py2exe はシステム ライブラリを検索するための標準に準拠していないため、機能しません。

さて、興味深い点です。atexit、os などをロードしようとするパスは次のとおりです。

W:\\library.zip\<module>.<ext>

library.zip の後の 1 つのスラッシュですが、ドライブ文字の後の 2 つのスラッシュに注意してください (これが意図されていて動作する場合は、誰かが私を修正してください)。これが文字列リテラルの場合、スラッシュが二重にされていないため、(無効な) エスケープ シーケンスとして読み取られ、生の文字が出力されます (W:\library.zipos.pyd, W:\library.zipos.dll, ...スラッシュの代わりに表示されます)。文字列リテラルでない場合、二重スラッシュは自動的にノルムパス化されない可能性があり (そうあるべきです)、二重スラッシュはモジュール ローダーを混乱させます。私が言ったように、set PYTHONPATH=W:\\library.zip\\その変数を無視するという理由だけではできません。

プログラムの開始時に sys.path.append を使用する価値があるかもしれませんが、特に古い OS の 1 つの構成で問題が発生するため、ハードコーディング モジュール パスは絶対的な最後の手段です。

何か案は?私は 1 つを持っていsys.pathますos。もう 1 つは、追加os.getenv('PATH')するかos.getenv('PYTHONPATH')、sys.path に追加することです... 再び、osモジュールが必要です。モジュールも初期化に失敗するsiteため、.pth ファイルを使用できません。

また、最近、プログラムの開始時に次のコードを試しました。

しかし、それは linecache.pyc やその他のものをロードすることはできません。見た目からは実際にこれらのコマンドを実行することはできません。sys.path を動的に変更するために linecache を必要としない組み込み機能を使用する方法はありますか? それとも、正しい sys.path をハードコーディングする必要がありますか?

0 投票する
3 に答える
7588 参照

python - py2exe (QtCore) で PyQt スクリプトをビルドする際の問題

pyqtを使用して、Windowsで単純なhello-world実行可能python guiアプリを作成しようとしています。だから私はpyqt.pyファイルを作った

次のsetup.pyスクリプトでpy2exeを使用しようとしました:

No module named sip最初にエラーが発生しましたが、ページのおかげで解決しましたPy2exeAndPyQt)。

これで実行可能ファイルができました。実行しようとすると、次のエラーが表示されます。

どうすれば修正できますか?ティア

0 投票する
2 に答える
13207 参照

python - Pythonの卵を解凍する方法は?

py2exeを使用するときにいくつかのegg依存関係をバンドルしようとしていますが、py2exeサイトに記載されているように、それらでは機能しないため、最初に解凍する必要があります。easy_install -m lxml最初に実行してから実行しようとしましeasy_install --always-unzip lxml==2.2.2たが、機能しませんでした。次に、解凍​​動作をに設定してデフォルトに設定しようとしましたdistutils.cfg。後者のファイルが見つからなかったので、HOME環境変数を作成し、pydistutils.cfgそこに次の内容のファイルを作成しました。

しかし、easy_installはまだ卵を開梱しません。物事を成し遂げる最も簡単な方法は何ですか?

0 投票する
3 に答える
6937 参照

python - マルチプロセッシングの問題[pyqt、py2exe]

PyQt4を使用してGUIプログラムを作成しています。メインウィンドウにボタンがあり、このボタンをクリックします。processing.Processから派生したクラスのインスタンスであるバックグラウンドプロセスを起動したいと思います。

( http://code.google.com/p/python-multiprocessing/から取得したpython-multiprocessingのPython2.5ポートを使用していることに注意して ください 。これが、multiprocessing.Processではなくprocessing.Processである理由です。これは違いを生むべきではありません。私は正しいですか?)

ボタンクリック信号に接続されているコードは、次のようなものです。

プログラムは、Pythonインタープリターの下で期待どおりに動作します。つまり、コマンドライン「pythonmyapp.py」から起動した場合です。

ただし、py2exeを使用してプログラムをパッケージ化した後、そのボタンをクリックするたびに、バックグラウンドタスクを開始する代わりに、メインウィンドウのコピーがポップアップ表示されます。この動作の理由はわかりません。http://docs.python.org/library/multiprocessing.html#multiprocessing-programmingでアドレス指定された次のメモに関連していると思い ます

「このパッケージ内の機能には、メインメソッドが子によってインポート可能である必要があります。これはプログラミングガイドラインでカバーされていますが、ここで指摘する価値があります。これは、マルチプロセッシングなどの一部の例を意味します。プールの例は、インタラクティブインタープリターでは機能しません。 「」

name == " main "の場合、私が持っている唯一の場所は、典型的なpyqtプログラムのようにメインモジュールにあります

この問題を解決する方法に関する解決策はありますか?ありがとう!