我正在编写一个脚本,该脚本只需向谷歌api询问从csv文件中读取的地址列表的纬度和经度,并输出一个嵌入谷歌地图小部件的html。此外,我希望运行pyinstaller,以便将其制作成.exe.
在我的原始conda环境中运行代码,效果很好,但pyinstaller创建的.exe对于这样一个小脚本(超过300mb(来说是巨大的。因此,我创建了一个新的虚拟环境,在其中工作,并安装了我认为是最低限度的必要软件包,并重写了代码,以使用尽可能少的软件包,对于代码的当前工作部分,这将其大大降低到了10 mb多一点。(我没有傻瓜或熊猫…啊,好吧(。
代码再次正常工作,直到最后一步:
from ipywidgets.embed import embed_minimal_html
embed_minimal_html("exporttest.html", None)
上面的行应该包含任何小部件,特别是从创建的图形
fig = gmaps.figure(layout=figure_layout)
markers = gmaps.marker_layer(coordinates)
fig.add_layer(markers)
fig
在我的原始conda环境中运行当前修改的版本,并安装了我的所有常用软件包,这样可以按预期运行,不会出现错误。在虚拟环境中运行,但是在提到的行中,我得到了以下关键错误:
KeyError Traceback (most recent call last)
c:programdataanaconda3envssynod_environlibsre_parse.py in
parse_template(source, pattern)
1020 try:
-> 1021 this = chr(ESCAPES[this][1])
1022 except KeyError:
KeyError: '\u'
During handling of the above exception, another exception occurred:
error Traceback (most recent call last)
<ipython-input-5-3359941239ab> in <module>
1 from ipywidgets.embed import embed_minimal_html
2
----> 3 embed_minimal_html("exporttest.html", None)
...
error: bad escape u at position 0
(为了澄清,关键错误在u之前有两个斜杠,在正确发布时有些沮丧(
由于代码在一个环境中正确运行,但在另一个环境下则不正确,因此我只能假设我在ipywidgets所需的某个地方缺少了一个包,但运行pip check
不会通知我缺少任何内容。
pip list
返回以下包:
altgraph 0.16.1后场0.1.0漂白剂3.0.2证书2018.10.15chardet 3.0.4colorama 0.4.0装饰工4.3.0defosedxml 0.5.0入口点0.2.3未来0.17.1geojson 2.4.1gmaps 0.8.2idna 2.7ipykernel 5.1.0ipython 7.1.1ipython genutils 0.2.0ipywidgets 7.4.2jedi 0.13.1金贾2 2.10jsonschema 2.6.0jupyter 1.0.0jupyter客户端5.2.3jupyter控制台6.0.0木星核心4.4.0马乔利布1.11MarkupSafe 1.0误差0.8.4nbconvert 5.4.0nbformat 4.4.0笔记本5.7.0pandocfilters 1.4.2第0.3.1段pefile 2018.8.8匹克分享0.7.5pip 10.0.1普罗米修斯客户端0.4.2提示工具包2.0.7第2.2.0小节PyInstaller 3.4python dateutil 2.7.5pywin32 ctypes 0.2.0冬季0.5.4pyzmq 17.1.2qtconsole 4.4.2请求2.20.0Send2Trash 1.5.0setuptools 40.4.3六1.11.0终端0.8.1测试路径0.4.2龙卷风5.1.1开拓者4.3.2urllib3 1.24wcwidth 0.1.7网络编码0.5.1车轮0.32.2小工具扩展3.4.2wincertstore 0.2
关于如何进一步确定出了什么问题,可能缺少什么包或如何解决问题,和/或保存谷歌地图输出的其他方法,有什么想法吗?
摆弄它,从一个环境到另一个环境进行比较,我发现我的虚拟环境有ipywidgets 7.4.2,而基本环境有ipywidgets 7.2.1。降级版本解决了我遇到的问题。