使用pyinstaller将.py转换为.exe后,出现错误“没有名为'pyproj._datadir'的模块”

时间:2019-04-24 07:45:32

标签: python-3.6 pyinstaller pyproj

当我的代码是.py时,效果很好 但是当我使用pyinstaller制作.exe文件时,它显示了ModuleNotFoundError。

我在制作.exe时写了这个

pyinstaller -F MyCode.py

我该如何解决这个问题?

我读过

Issues with pyinstaller and pyproj

,我打算在Pyinstaller的“ hooks”文件夹中创建hook-pyproj.py并将其定位。但是hook-pyproj.py已经在那里有相同的代码。

之后,我安装了“底图”,并尝试从中使用pyproj。但是,它向我显示了相同的错误。

这是我执行.exe文件时向我显示的错误。 (我用*****涵盖了一些信息)

Traceback (most recent call last):
  File "collect\MyCode.py", line 8, in <module>
  File "c:\users\*****\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\mpl_toolkits\basemap\__init__.py", line 41, in <module>
  File "c:\users\*****\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pyproj\__init__.py", line 62, in <module>
  File "c:\users\*****\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pyproj\crs.py", line 26, in <module>
  File "pyproj\_crs.pyx", line 1, in init pyproj._crs
ModuleNotFoundError: No module named 'pyproj._datadir'
[25936] Failed to execute script MyCode

这是我的代码。

from mpl_toolkits.basemap import pyproj as pyproj

我一开始尝试过。

import pyproj

但是我收到相同的“ ModuleNotFoundError:没有名为'pyproj._datadir'的模块”错误。

2 个答案:

答案 0 :(得分:1)

有点奇怪,我不完全理解为什么,但是我发现了一个快速的肮脏修复程序。 您可以添加此导入

from pyproj import _datadir, datadir

到您现有的。

答案 1 :(得分:0)

我注意到在某些Windows计算机而非其他Windows计算机上发生了pyproj import dll错误错误。

原来是对Visual C Runtime 2015+的依赖

https://support.microsoft.com/en-au/help/2977003/the-latest-supported-visual-c-downloads