python - 无法在 docker 镜像中导入 cx_Oracle

标签 python oracle docker cx-oracle

我正在用 docker 构建一个 python 文件。在这个 python 文件中,我 import cx_Oracle用甲骨文做某事。我可以通过 ternimal 成功运行 python 文件:
[root@master files]# python3 myfile.py
然后我基于这个文件构建了一个 docker 镜像。这是Dockerfile的内容:

FROM python:3.6
ENV PYTHONPATH /root/files
WORKDIR ./
COPY myfile.py ./
CMD [ "python3", "myfile.py" ]

然后构建镜像:[root@master files]# docker build -f Dockerfile -t test:1.0 . 建筑很成功。但是,当我尝试通过 docker run --name test test:1.0 运行图像时它给了我一个错误:
Traceback (most recent call last):
  File "TimedTransfer.py", line 4, in <module>
    from Transfer import TransferTPI
  File "/Transfer.py", line 7, in <module>
    import cx_Oracle
ModuleNotFoundError: No module named 'cx_Oracle'

有人可以告诉我如何解决这个问题吗?

最佳答案

您可以在 Dockerfile 中添加一行,然后 Dockerfile 将如下所示:

FROM python:3.6
ENV PYTHONPATH /root/files

# install the 'cx_Oracle' module
RUN apt-get -y update && python3 -m pip install cx_Oracle --upgrade

WORKDIR ./
COPY myfile.py ./
CMD [ "python3", "myfile.py" ]

然后图像将包含“cx_Oracle”模块。

关于python - 无法在 docker 镜像中导入 cx_Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55824622/

相关文章:

Docker-compose 在 WSL 上使用不正确的路径 :\\?\C:\

python - 从 Dockerfile 中的自定义 whl 文件安装 pip

python - 如果列 y 满足条件,则计算列 x 的平均值,对于每个 y

linux - ORA-24247 Linux 上 UTL_HTTP 上的 Oracle ACL

java - RowSet 未启用写入

docker - 在 Synology NAS 上使用 Docker 的 GitLab - HTTPS

python - PIL 透明背景中的残留白色像素

python - 转置具有多列的 pandas 数据框

python - 如何在Python中通过多个键聚合数据集?

sql - WPF比较两个数据表以查找匹配值