首先: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解决方案,但这是运气问题!
我如何从该消息中知道什么是必要的依赖?
经常喝酒!
答案 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