首页 > 解决方案 > 在 docker 中运行时没有名为“projecta”的模块,但在 PyCharm 中有效

问题描述

我在 PyCharm 中有一个 Python Flask 应用程序设置。该项目的文件夹结构如下:

- README.md
- .gitignore
- projecta/
      - __init__.py
      - src/__init__.py
      - src/app.py
      - src/api/hello.py
      - src/service/helloService.py
      - Dockerfile
      - requirements.txt 
- projectb/

在我的 dockerfile 中,我有以下内容:

FROM python:3.6
RUN mkdir /projecta
WORKDIR /projecta
ADD . /projecta/
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "/projecta/src/app.py"]

在我的 PyCharm 中,我将它作为 Python 配置运行,脚本路径为path-to-folder/projecta/src/app.py,工作目录为path-to-folder/projecta/src.

当我从 PyCharm 运行时,一切正常运行,没有任何问题。但是当我从 docker usingdocker run -d --name a a:0.0.2和 building using运行时docker build -t a:0.0.2 .,会出现以下错误:

Traceback (most recent call last):

File "/projecta/src/app.py", line 3, in <module>

from projecta.src.api import api

ModuleNotFoundError: No module named 'projecta'

我不是 Python/Flask 和 Docker 方面的专家。有人可以指出这里有什么问题吗?

标签: pythondockerflask

解决方案


from .api import api在 app.py 的第 3 行尝试

它不会在 pycharm 中运行,但会在 docker 中运行良好


推荐阅读