build: 将 pcse 本地路径依赖改为本地 vendor wheel 包

- 在 Dockerfile 中复制 vendor/ 目录,确保镜像构建时可用本地 wheel
  - pyproject.toml 中将 pcse 依赖从 file:///job/pcse 固定为 ==6.0.12
  - 配置 uv find-links 指向 ./vendor,解析本地 wheel 源
  - 新增 vendor/pcse-6.0.12-py3-none-any.whl,避免依赖外部绝对路径
This commit is contained in:
zhenghu
2026-04-14 15:03:53 +08:00
parent e4543ce7bd
commit bc8248a481
5 changed files with 15 additions and 14 deletions

View File

@@ -11,8 +11,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
curl \ curl \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# 复制项目配置文件 # 复制项目配置文件与本地 wheel 依赖
COPY pyproject.toml justfile ./ COPY pyproject.toml justfile ./
COPY vendor/ ./vendor/
# 配置 uv 使用阿里云镜像源 # 配置 uv 使用阿里云镜像源
ENV UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ \ ENV UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ \

View File

@@ -9,9 +9,12 @@ dependencies = [
"plotly>=6.5.0", "plotly>=6.5.0",
"pandas>=2.0.0", "pandas>=2.0.0",
"numpy>=2.0.0", "numpy>=2.0.0",
"pcse @ file:///job/pcse", "pcse==6.0.12",
] ]
[tool.uv]
find-links = ["./vendor"]
[[tool.uv.index]] [[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple" url = "https://mirrors.aliyun.com/pypi/simple"
default = true default = true

17
uv.lock generated
View File

@@ -280,7 +280,7 @@ dependencies = [
requires-dist = [ requires-dist = [
{ name = "numpy", specifier = ">=2.0.0" }, { name = "numpy", specifier = ">=2.0.0" },
{ name = "pandas", specifier = ">=2.0.0" }, { name = "pandas", specifier = ">=2.0.0" },
{ name = "pcse", directory = "../pcse" }, { name = "pcse", specifier = "==6.0.12" },
{ name = "plotly", specifier = ">=6.5.0" }, { name = "plotly", specifier = ">=6.5.0" },
{ name = "streamlit", specifier = ">=1.52.0" }, { name = "streamlit", specifier = ">=1.52.0" },
] ]
@@ -494,7 +494,7 @@ wheels = [
[[package]] [[package]]
name = "pcse" name = "pcse"
version = "6.0.12" version = "6.0.12"
source = { directory = "../pcse" } source = { registry = "vendor" }
dependencies = [ dependencies = [
{ name = "dotmap" }, { name = "dotmap" },
{ name = "openpyxl" }, { name = "openpyxl" },
@@ -504,16 +504,9 @@ dependencies = [
{ name = "requests" }, { name = "requests" },
{ name = "traitlets-pcse" }, { name = "traitlets-pcse" },
] ]
wheels = [
[package.metadata] { path = "pcse-6.0.12-py3-none-any.whl" },
requires-dist = [ { path = "pcse-6.0.12-py3-none-any.whl" },
{ name = "dotmap", specifier = ">=1.3" },
{ name = "openpyxl", specifier = ">=3.0" },
{ name = "pandas", specifier = ">=2.0" },
{ name = "pydispatcher", specifier = ">=2.0.7" },
{ name = "pyyaml", specifier = ">=5.1" },
{ name = "requests", specifier = ">=2.0" },
{ name = "traitlets-pcse", specifier = "==5.0.0.dev0" },
] ]
[[package]] [[package]]

4
vendor/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# 默认忽略 vendor 下的所有内容,但保留 pcse wheel 和本文件
*
!pcse-6.0.12-py3-none-any.whl
!.gitignore

BIN
vendor/pcse-6.0.12-py3-none-any.whl vendored Normal file

Binary file not shown.