Python 模块未找到错误仅适用于使用 Pyogrio 导入编译的脚本

问题描述 投票:0回答:1

我使用的是 Windows 10 工作计算机,安装了 Python 3,但未安装 Python 2。此处保持脚本简单。这个:

import pyogrio
print(pyogrio.__version__)

作为 file.py 脚本运行得非常好。当我编译(使用 pyinstaller)并运行它时,出现以下错误:

Traceback (most recent call last):
  File "Simple.py", line 1, in <module>
  File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
  File "pyogrio\__init__.py", line 21, in <module>
  File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
  File "pyogrio\core.py", line 21, in <module>
  File "pyogrio\\_io.pyx", line 1, in init pyogrio._io
ModuleNotFoundError: No module named 'pyogrio._geometry'

查看 pyogrio 的站点包文件夹,没有

\_geometry
,但有
\_geometry.pyx
\_geometry.pyd
。 我对
\_io
也有类似的问题,但我可以在他们的
\_envy.py
中看到,当导入失败时,它会查找 gdal*.dll。最初它也找不到这个,但我能够强制它并使其工作。 在任何可见代码中都没有导入或使用
\_geometry
这就是我现在不知所措的原因。 它用什么来代替
\_geometry
?我需要向编译器添加什么来添加缺少的内容?

python-3.x gis geopandas
1个回答
0
投票

我把事情搞得太复杂了。在使用 Visual Studio Code 时,pylance(检查模块的内部人员?)说没有 pyogrio._geometry。但一旦编译完成,导入就可以正常工作了。将其添加到 pyinstaller 的 --hidden-imports 中效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.