python - 为什么在Dockerfile中使用requirements.txt中的 pip `install_requires`从setup.py安装 “.”失败?

标签 python docker pip setup.py

我正在尝试使用here描述的方法
Docker文件

FROM python:3.8

COPY requirements.txt setup.py /tmp/
RUN pip3 install -r /tmp/requirements.txt \
    && rm /tmp/*
这失败与:
Step 1/7 : FROM python:3.8
 ---> 79cc46abd78d
Step 2/7 : COPY requirements.txt setup.py /tmp/
 ---> Using cache
 ---> a50a0a8ecb06
Step 3/7 : RUN pip3 install -r /tmp/requirements.txt     && rm /tmp/*
 ---> Running in c7d29bd8f23c
ERROR: Directory '.' is not installable. Neither 'setup.py' nor 'pyproject.toml'
 found.
我也尝试注释掉RUN命令,进入容器并运行
手动输入pip3 install -r /tmp/requirements.txt。这工作没有错误。
我不知道这里可能是什么问题。

最佳答案

我想到了:
.不是相对于requirements.txt而是相对于当前工作目录。当我手动执行时它起作用的原因是,我还将我的工作空间安装到了一个devcontainer中,并在该工作空间中包含了setup.py的工作目录。
因此,解决方案是执行以下操作:

WORKDIR /tmp
COPY requirements.txt setup.py ./
RUN pip3 install -r requirements.txt \
    && rm /tmp/*

关于python - 为什么在Dockerfile中使用requirements.txt中的 pip `install_requires`从setup.py安装 “.”失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63595467/

相关文章:

python - Django 在使用 matplotlib 示例时出错

python - Seaborn regplot 中点和线的不同颜色

node.js - 通过 WebStorm 运行/调试配置在 docker node.js 应用程序上设置私有(private) npm 注册表

python - 我怎样才能 'clean up' 一个 virtualenv?

Python-画中画 : Is it possible to specify architecture?

找不到 linkedin oauth2 的 python-social-auth 后端

python - 在 python 中使用 mysql.connector 将表情符号插入数据库时​​出现问题

docker - Docker Toolbox端口映射不起作用

selenium - Docker:尽管演示成功,但无法查看正在运行的容器

python - Gensim on windows : C extension not loaded, 训练会很慢