gpt4 book ai didi

python - PYTHONPATH : module not found even when locally runs fine 的 Docker 镜像和 ENV 命令

转载 作者:行者123 更新时间:2023-12-02 20:06:08 25 4
gpt4 key购买 nike

我有一个 Python 工作,我正试图在 Docker 镜像中发布。代码的结构使得某些模块从 modules 导入。文件夹,所以我已添加到 Python 路径。

具体来说,Dockerfile 是

FROM python:3

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app

ENV PYTHONPATH "/usr/src/app"

RUN pip3 install -r requirements.txt

如您所见,我正在尝试为 PYTHONPATH 设置环境变量,以便它可以在同一个工作目录中找到东西。

要运行的脚本名为 main.py当我在本地(不是从 docker )运行它时
PYTHONPATH=$PYTHONPATH:$HOME/job-path python3 main.py

它运行良好。

使用该 Dockerfile instesd,在构建我得到的镜像后,来自 docker inspect <ID> ,即 Env 字段包含
"Env": [
"PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"PYTHON_VERSION=3.6.4",
"PYTHON_PIP_VERSION=9.0.1",
"PYTHONPATH=/usr/src/app"
]

所以看起来没问题?但是 docker run给了我一个
ModuleNotFoundError: No module named 'modules'

最佳答案

语法是

ENV variable1[=value1] variable2[=value2] ...

如果没有等号,您将创建两个空变量;第二个名字是 /usr/src/app .你要
ENV PYTHONPATH="/usr/src/app"

在变量的名称和它的值之间使用等号。

如果要附加到现有值,可以:
ENV PYTHONPATH="/usr/src/app:${PYTHONPATH}"

关于python - PYTHONPATH : module not found even when locally runs fine 的 Docker 镜像和 ENV 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49306112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com