5

pyInstaller、py2exe、または同様のツールで作成されたスタンドアロン実行可能ファイル用の優れたプラグイン エンジンを作成する方法は?

私はpy2exeの経験はありませんが、pyInstallerはインポートフックを使用して、圧縮されたリポジトリからパッケージをインポートします。もちろん、pyInstaller で作成された別の圧縮リポジトリを動的にインポートしてコードを実行することはできます。これは単純なプラグイン エンジンである可能性があります。

プラグイン (動的にインポートされるもの) が元のリポジトリに存在しない (インポートされていない) ライブラリを使用すると、問題が発生します。これは、インポート フックが元のアプリケーション用であり、後でインポートされたもの (プラグイン パッケージ リポジトリ) ではなく、元のリポジトリでパッケージを検索するためです。

この問題を解決する簡単な方法はありますか? ひょっとしたら、そのようなエンジンが存在するのだろうか?

4

2 に答える 2

3

exeにコンパイルすると、この問題が発生します。

ユーザーがこれらのプラグインで任意のPythonライブラリを使用できるようにするために私が考えることができる唯一のオプションは、exeパッケージにすべてのライブラリを含めることです。

サポートされているライブラリをサブセットに制限し、ドキュメントにリストすることをお勧めします。君による。

私はpy2exeのみを使用しました。

py2exeでは、 setup.pyファイルの検索で見つからなかったライブラリを指定できます。

サンプルは次のとおりです。

from distutils.core import setup
import py2exe

setup (name = "script2compile",
       console=['script2compile.pyw'],
       version = "1.4",
       author = "me",
       author_email="somemail@me.com",
       url="myurl.com",
       windows = [{
                    "script":"script2compile.pyw",
                    "icon_resources":[(1,"./ICONS/app.ico")]  # Icon file to use for display
                 }],
       # put packages/libraries to include in the "packages" list
       options = {"py2exe":{"packages": [   "pickle",
                                            "csv",
                                            "Tkconstants",
                                            "Tkinter",
                                            "tkFileDialog",
                                            "pyexpat",
                                            "xml.dom.minidom",
                                            "win32pdh",
                                            "win32pdhutil",
                                            "win32api",
                                            "win32con",
                                            "subprocess", 
                                        ]}} 

       )

import win32pdh
import win32pdhutil
import win32api
于 2008-11-21T01:17:47.730 に答える
1

PyInstallerには非表示のインポートを処理するためのプラグイン システムがあり、それらのいくつかは既に組み込まれています。次の Web ページ ( http://www.pyinstaller.org ) を参照してください。

PyInstaller の主な目標は、すぐにサードパーティのパッケージと互換性を持たせることです。これは、PyInstaller を使用すると、外部パッケージを機能させるために必要なすべてのトリックが既に PyInstaller 自体に統合されているため、ユーザーの介入が必要ないことを意味します。Wiki でトリックを探したり、ファイルやセットアップ スクリプトにカスタム変更を適用したりする必要はありません。サポートされているパッケージの互換性リストを確認してください。

于 2009-06-05T13:49:24.507 に答える