0

py2app を使用して、Mac 上の Python 2.7 で作成した小さな Python アプリをバンドルしようとしています。私のアプリでは、メイン ファイルの先頭にインポートされたWatchdog ライブラリを使用します。

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

私のプログラムを実行すると、これらの import ステートメントは正常に機能し、プログラムは期待どおりに機能します。ただし、py2app を実行した後、バンドルされたアプリケーションを起動すると、次のエラーが生成されます。

ImportError: No module named watchdog.observers

observers最初は、モジュールがネストされていることと関係があると思いましたがwatchdog、それをテストするために、次の行を追加しました

import watchdog

プログラムの先頭に移動し、アプリを実行するとエラーが発生しました

ImportError: No module named watchdog

watchdog何らかの理由で、実際にはパッケージが見つからないようです。

watchdogpy2app の--packagesオプションを使用して手動でパッケージを追加しようとしました:

$ python setup.py py2app --packages watchdog

しかし、それは効果がありませんでした。

バンドルされていない Python プログラムは、コマンド ラインから問題なく動作します。私がインポートした他のダウンロードモジュールはエラーを出していません。そして、単純な「Hello World!」をバンドルすることに成功しました。アプリはpy2appを使用しているので、セットアップは正しいと思います。

しかし、py2appにwatchdogパッケージを見つける方法については、ちょっとアイデアがありません。どんなアイデアや助けも大歓迎です。

編集: setup.pypy2applet によって生成された my のテキストは次のとおりです。私はそれを変更していません。

from setuptools import setup

APP = ['watcher.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
4

4 に答える 4

0

あなたの問題は通常、パッケージ(あなたの場合は「ウォッチドッグ」またはその依存関係の1つ)がインストールされていないか、少なくともpy2appがパッケージを見つけると予想される場所にないことを示しています。

コマンドラインからスクリプトを実行する場合と同じ python コマンドを使用して py2app を実行しますか? 取得している ImportError のメッセージは何ですか (「watchdog」のインポートと「watchdog.observers」のインポートの両方の場合?

py2app の(長すぎる)出力には、いくつかのパッケージが見つからないこと、およびどのパッケージが見つからないかについても言及する必要があります。

于 2013-07-15T05:47:10.810 に答える