我正在尝试使用py2app来捆绑我在Mac上用Python2.7制作的一个小的Python应用程序。我的应用程序使用Watchdog library,它是在我的主文件顶部导入的:
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler在运行我的程序时,这些import语句工作得很好,程序也按预期工作。但是,在运行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!“应用程序使用py2app,所以我相信我的设置是正确的。
但是我有点想不到如何让py2app找到watchdog包。任何想法或帮助都将不胜感激。
编辑:这是py2applet生成的我的setup.py的文本。我还没有修改它。
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'],
)发布于 2013-07-13 08:04:24
尝试在setup.py文件中手动包含所需的包:
from setuptools import setup
APP = ['watcher.py']
DATA_FILES = []
PKGS = ['watchdog', /*whatever other packages you want to include*/]
OPTIONS = {
'argv_emulation': True,
'packages' : PKGS,
}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)发布于 2016-05-03 21:50:21
我安装了watchdog 0.5.4,一个非常老的版本,得到了同样的错误。升级至0.8.3后,已修复该错误:
pip install watchdog --upgrade发布于 2013-07-15 13:47:11
您的问题通常表明没有安装包(在您的例子中是"watchdog",或者它的一个依赖项),或者至少没有安装在py2app期望找到包的位置。
运行py2app时使用的python命令与从命令行运行脚本时使用的命令相同吗?当导入"watchdog“和导入"watchdog.observers”时,你得到的ImportError信息是什么?
py2app的输出(太长了)还应该提到它找不到一些包,以及哪些包。
https://stackoverflow.com/questions/17625420
复制相似问题