You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在QGIS插件中安装geopandas遇numpy版本兼容及重载错误

在QGIS插件中使用Geopandas遇到的版本兼容与导入问题

操作流程

  • 创建虚拟环境(venv)
  • 安装geopandas
  • 将虚拟环境的site-packages目录添加至Python路径
  • 导入geopandas

问题详情

执行上述步骤后触发版本兼容报错:当前numpy版本为1.21.5,而安装的pandas版本要求numpy≥1.22.4。尝试通过importlib.reload()重载numpy以调用虚拟环境中的高版本时,又出现无法从numpy._globals导入_CopyMode的错误,怀疑QGIS的qgis/utils.py中的_import方法干扰了正常导入逻辑,目前无解决思路。

相关代码与报错信息

原安装代码

# sys.executable - QGIS Python解释器路径
# venv_path - 虚拟环境路径
# venv_pip_path - 虚拟环境中pip的路径
# venv_site_packages_path - 虚拟环境site-packages路径

import sys
import subprocess
from importlib import import_module

subprocess.run([sys.executable, "-m", "venv", "--copies", venv_path], check=True)
subprocess.run([venv_pip_path, "install", "geopandas"], check=True)
sys.path.insert(0, venv_site_packages_path)
import_module("geopandas")

版本兼容报错

ImportError: this version of pandas is incompatible with numpy < 1.22.4
your numpy version is 1.21.5.
Please upgrade numpy to >= 1.22.4 to use this pandas version

重载numpy代码

from sys import modules
import importlib

importlib.reload(modules['numpy'])

重载报错

File "/usr/lib/python3.10/importlib/__init__.py", line 169, in reload
    _bootstrap._exec(spec, module)
  File "<frozen importlib._bootstrap>", line 619, in _exec
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/sam/test/numpy/__init__.py", line 105, in <module>
    from ._globals import _NoValue, _CopyMode
ImportError: cannot import name '_CopyMode' from 'numpy._globals' (/usr/lib/python3/dist-packages/numpy/_globals.py)

怀疑的干扰代码

File "/usr/lib/python3/dist-packages/qgis/utils.py", line 923, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)

内容的提问来源于stack exchange,提问作者TheFunEmbargo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:28:16