python - 在 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 方面的专家。有人可以指出这里有什么问题吗?
解决方案
from .api import api
在 app.py 的第 3 行尝试
它不会在 pycharm 中运行,但会在 docker 中运行良好
推荐阅读
- html - 删除 Chrome 自动完成的输入背景颜色?透明背景色?
- html - 如何在 Laravel 的 dompdf 中实现带边框底部的内联全宽 div(记住不支持 flex 框)
- sql - 想要 1 行中的多行
- javascript - 回调函数本身未定义
- python - 在 pandas 中使用 group by 时如何找到索引的最小值和最大值?
- javascript - 使用 CSS 隐藏特定的 Dev 元素
- android - 成功 Oauth 2.0 登录 Android 后需要电子邮件地址
- google-colaboratory - 如何跳过解压缩已存在于 google colab 中的文件
- jquery - 为什么为笛卡尔积抛出错误的jquery字符串?
- python - 使用 LineString Python Shapely 将圆分成两部分