【发布时间】:2019-05-14 14:44:06
【问题描述】:
我有一个 Tornado 应用程序,其文件结构如下:
projectfolder
|_ Dockerfile
|_ src
|_ __init__.py
|_ __main__.py
|_ config.py
我的 dockerfile 看起来像这样:
FROM python:3.7
EXPOSE 8888
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ENTRYPOINT ["python3", "projectfolder/__main__.py"]
在__main__.py 我做from .config import Config
当做 docker run 我得到:
File "projectfolder/__main__.py", line 11, in <module>
from .config import Config
ModuleNotFoundError: No module named '__main__.config'; '__main__' is not a package
当我在 .venv 中运行项目时,它工作正常,但我无法让它在 docker 上工作
关于如何正确导入当前文件夹中的文件有什么想法吗?或者我应该如何在其他遵循 python 最佳实践的情况下重新构建我的文件
谢谢!
【问题讨论】:
-
如果我将所有文件向上移动一个文件夹(连同 Dockerfile),然后删除 .它的工作原理