我正在尝试用pyinstaller做一个独立的应用程序。可执行文件构建得很好,但是当我试图使用与库pyproj集成的函数执行一些操作时,可执行文件就会崩溃。
这个脚本在Pycharm上运行得很好,所以我认为问题在于,pyinstaller没有链接到某种类型的pyproj库。
我可以在用pyinstaller构建的独立应用程序上使用spec文件或其他东西来指定pyproj吗?
这是我所犯的错误:
Traceback (most recent call last): File "<string>", line 6, in
<module> File "C:\pyproj\build\main\out00-PYZ.pyz\pyproj", line 343,
in __new__ File "_proj.pyx", line 85, in _proj.Proj.__cinit__
(_proj.c:1190)
RuntimeError: no system list, errno: 2这是我的main.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyproj
print pyproj.__version__
p=pyproj.Proj(init='EPSG:4326')提前感谢
发布于 2014-01-13 13:23:42
问题是当与PyInstaller一起使用pyproj时,pyproj无法找到库文件夹中的数据文件。
解决方案是创建一个钩子文件,它将指定数据文件的位置,这样您就可以将它们与我们的可执行文件链接起来。
hook-pyproj.py
from PyInstaller.hooks.hookutils import collect_data_files
datas = collect_data_files('pyproj')钩子文件可以位于Pyinstaller安装上的“钩子”文件夹上,也可以使用顺序--附加-钩子-dir,指定一个将位于“钩子-pyproj.py”的文件夹。
发布于 2016-02-03 22:33:10
仅对前面的答案进行线程处理,自2014年以来,对PyInstaller进行了一些重构,下面是上述钩子文件的正确导入行:
from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files('pyproj')发布于 2017-06-20 20:43:28
从PyInstaller.hooks.hookutils导入collect_data_files数据= collect_data_files('pyproj')
但我在另一条帖子中发现,这个问题可以通过以下方式解决:
from mpl_toolkits.basemap import pyproj as pyprojpyinstaller似乎在集成pyproj模块本身方面存在问题,但是basemap包含pyproj,并且不能被pyinstaller忽略。
只是为了更新
https://stackoverflow.com/questions/20201532
复制相似问题