pyinstaller没有模块命名错误

时间:2018-05-17 10:56:29

标签: python flask pyinstaller fedora

首先:python 2.7,pyinstaller 3.3.1

我是pyinstaller和flask的新手,我正在尝试为我的嵌入式Linux系统开发一个小应用程序。

关键是每次我使用pyinstaller生成我的应用程序时,它都有效,但是当我运行它时,它没有。

我的上一个错误如下:

Traceback (most recent call last):
  File "hello.py", line 22, in <module>
  File "flask/app.py", line 943, in run
  File "werkzeug/serving.py", line 812, in run_simple
  File "werkzeug/_reloader.py", line 273, in run_with_reloader
  File "werkzeug/_reloader.py", line 152, in run
  File "werkzeug/_reloader.py", line 22, in _iter_module_files
  File "email/__init__.py", line 79, in __getattr__
ImportError: No module named image

就我而言,我不需要这个模块,但对我来说,最重要的是知道在哪里找到那些隐藏的依赖项。我真正想知道的是一种方法,以便查找这些依赖项并更改我的脚本以使用pyinstaller生成我的bundle。直到现在,我使用这一行来生成我的包:

pyinstaller --noupx --hiddenimport email.mime.message --hiddenimport image hello.py

第二个隐藏导入是错误的,但是,我怎么知道哪个导入丢失了?我在哪里搜索这些模块?

我的第一个隐藏导入(email.mime.message)有一个类似的消息,只是说有一个缺少导入&#34;消息&#34;。我可以阅读here解决方案,但这是运气问题!

我如何从该消息中知道什么是必要的依赖?

经常喝酒!

2 个答案:

答案 0 :(得分:0)

您应该运行它才能使其工作:

library(ncdf4)
ncin <- nc_open("cons_irr_h08.nc")

lon= ncvar_get(ncin,'lon')
lat= ncvar_get(ncin,'lat')

head(cbind(lat,lon))

cons_irr <- ncvar_get(ncin, 'cons_irr')

plot(lon,lat,type='p',pch='.')

ncin <- nc_open("cons_irr_h08.nc")    
tvar= ncvar_get(ncin,'month')

add.months= function(date,n) seq(date, by = paste (n, "months"), length = 2)[2]
times = as.Date(sapply(tvar-1,add.months,date=as.Date('1971-01-15')),origin='1970-01-01')

感谢mrf345

答案 1 :(得分:0)

from PyInstaller.utils.hooks import collect_data_files, eval_statement, collect_submodules

datas = collect_submodules('email.mime')

hidden_imports = ['sqlalchemy.sql.default_comparator', 'jinja2'] + datas

将此添加到从pyi-makespec生成的.spec文件中,有关更多信息,请访问 https://pythonhosted.org/PyInstaller/hooks.html#understanding-pyinstaller-hooks

相关问题