【发布时间】:2013-07-12 23:21:46
【问题描述】:
我正在尝试使用 py2app 捆绑我在 Mac 上使用 Python 2.7 制作的小型 Python 应用程序。我的应用使用Watchdog library,它在我的主文件顶部导入:
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
运行我的程序时,这些导入语句运行良好,程序按预期运行。但是,在运行 py2app 后,启动捆绑的应用程序会产生以下错误:
ImportError: No module named watchdog.observers
起初我认为这与嵌套在 watchdog 中的 observers 模块有关,但为了测试这一点,我添加了这一行
import watchdog
到我的程序顶部,然后在运行应用程序时出现错误
ImportError: No module named watchdog
所以它似乎由于某种原因实际上找不到watchdog 包。
我尝试使用 py2app 的 --packages 选项手动添加 watchdog 包:
$ python setup.py py2app --packages watchdog
但它没有效果。
我未捆绑的 Python 程序可以在命令行中正常运行;我导入的其他下载模块没有出错;我已经成功捆绑了一个简单的“Hello World!” app 使用 py2app,所以我相信我的设置是正确的。
但我对如何让 py2app 找到 watchdog 包有点想法。任何想法或帮助将不胜感激。
编辑:这是我的setup.py 的文本,由 py2applet 生成。我没有修改它。
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'],
)
【问题讨论】:
-
你的 setup.py 是什么样子的?
-
我的 setup.py 只是 py2applet 生成的默认文件——我根本没有修改它。我已将文本添加到我的问题中。
标签: python python-2.7 python-import py2app watchdog