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

如何在Rocky Linux 8上通过tox搭建兼容GDAL 3.0.4的测试环境

解决Rocky Linux 8下tox搭建GDAL 3.0.4测试环境的问题

问题根源

tox默认创建虚拟环境时会先安装最新版setuptools和pip,之后才处理你指定的依赖包。而GDAL 3.0.4的setup.py依赖已被新版setuptools移除的use_2to3_fixers选项,导致安装失败。手动创建环境时先降级setuptools再装GDAL可行,但tox的默认流程打乱了这个顺序。


解决方案1:提前降级setuptools(推荐)

修改tox.ini,通过commands_pre在安装其他依赖前强制降级setuptools:

[tox]
env_list = py39

[testenv]
# 先将setuptools降级到兼容版本
commands_pre =
    pip install setuptools==57.5.0
deps =
    gdal==3.0.4
    pytest
commands =
    python -m pytest

原理:commands_pre会在安装deps中的包之前执行,确保安装GDAL时使用的是指定的旧版setuptools。


解决方案2:覆盖tox的虚拟环境初始化流程

如果方案1仍有问题,可以强制tox创建虚拟环境时跳过默认的pip/setuptools安装,手动指定版本:

[tox]
env_list = py39

[testenv]
# 创建虚拟环境时不自动安装pip
venv_create_opts = --without-pip
commands_pre =
    # 安装指定版本的pip和setuptools
    curl https://bootstrap.pypa.io/pip-21.3.1/get-pip.py | python
    pip install setuptools==57.5.0
deps =
    gdal==3.0.4
    pytest
commands =
    python -m pytest

注:pip 21.3.1与setuptools 57.5.0版本兼容,避免出现版本冲突。


前置系统依赖检查

确保Rocky Linux 8已安装GDAL相关系统开发包,否则Python版GDAL编译会失败:

sudo dnf install epel-release
sudo dnf install gdal-devel proj-devel python39-devel

内容的提问来源于stack exchange,提问作者Balaïtous

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:42:30