我有一个简单的python应用程序,它使用我创建的自定义类。以下文件夹结构如下:
│ mains
| ├── run_it.py
| ├── __init__.py
│ ├── parsers
│ ├── parser.py
│ ├── __init__.py
在逃_it.py公司,主程序,我打电话来
from mains.parsers.parser import Parser
在本地模式下,我添加了~/.bashrc行,效果很好:
export PYTHONPATH="${PYTHONPATH}:/home/.../THE_FOLDER_ABOVE_MAINS"
但是,当我尝试对应用程序进行dockerize时,出现以下错误:
File "/app/run_it.py", line 11, in <module>
from mains.parsers.parser import Parser
ModuleNotFoundError: No module named 'mains'
我的Dockerfile是:
FROM python:3
RUN mkdir /app
WORKDIR /app
ADD . /app/
RUN apt-get update
RUN pip3 install gunicorn
RUN pip3 install -r requirements.txt
EXPOSE 5000
ENV PYTHONIOENCODING=utf-8
ENV GUNICORN_CMD_ARGS="--bind 0.0.0.0:5000 --workers=2"
CMD ["gunicorn","run_it:app"]
你知道我该怎么解决吗? 提前谢谢!你知道吗
试试这个,它起作用了。。你知道吗
从解析器.parser导入分析器
我没有看到您在容器中设置任何模块路径,那么对于您的情况,运行顶层脚本
run_it.py
的文件夹app
会自动添加到模块路径中。你知道吗因此,您应该使用next:
另一种方法是在Dockerfile旁边添加(假设是mains的同一个文件夹):
然后您仍然可以使用
from mains.parsers.parser import Parser
相关问题 更多 >
编程相关推荐