首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带watchdog的py2app ImportError

带watchdog的py2app ImportError
EN

Stack Overflow用户
提问于 2013-07-13 07:21:46
回答 4查看 3.8K关注 0票数 0

我正在尝试使用py2app来捆绑我在Mac上用Python2.7制作的一个小的Python应用程序。我的应用程序使用Watchdog library,它是在我的主文件顶部导入的:

代码语言:javascript
复制
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

在运行我的程序时,这些import语句工作得很好,程序也按预期工作。但是,在运行py2app之后,启动捆绑的应用程序会生成以下错误:

代码语言:javascript
复制
ImportError: No module named watchdog.observers

起初,我认为这与嵌套在watchdog中的observers模块有关,但为了测试这一点,我添加了下面这行代码

代码语言:javascript
复制
import watchdog

到我程序的顶端,然后在运行应用程序时,得到错误

代码语言:javascript
复制
ImportError: No module named watchdog

因此,由于某些原因,它似乎实际上找不到watchdog包。

我尝试使用py2app的--packages选项手动添加watchdog包:

代码语言:javascript
复制
$ python setup.py py2app --packages watchdog

但它没有任何效果。

我的非捆绑Python程序从命令行运行得很好;我导入的其他下载模块没有错误;我已经成功地捆绑了一个简单的"Hello World!“应用程序使用py2app,所以我相信我的设置是正确的。

但是我有点想不到如何让py2app找到watchdog包。任何想法或帮助都将不胜感激。

编辑:这是py2applet生成的我的setup.py的文本。我还没有修改它。

代码语言:javascript
复制
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'],
)
EN

回答 4

Stack Overflow用户

发布于 2013-07-13 08:04:24

尝试在setup.py文件中手动包含所需的包:

代码语言:javascript
复制
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'],
)
票数 1
EN

Stack Overflow用户

发布于 2016-05-03 21:50:21

我安装了watchdog 0.5.4,一个非常老的版本,得到了同样的错误。升级至0.8.3后,已修复该错误:

代码语言:javascript
复制
pip install watchdog --upgrade
票数 1
EN

Stack Overflow用户

发布于 2013-07-15 13:47:11

您的问题通常表明没有安装包(在您的例子中是"watchdog",或者它的一个依赖项),或者至少没有安装在py2app期望找到包的位置。

运行py2app时使用的python命令与从命令行运行脚本时使用的命令相同吗?当导入"watchdog“和导入"watchdog.observers”时,你得到的ImportError信息是什么?

py2app的输出(太长了)还应该提到它找不到一些包,以及哪些包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17625420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档