Python没有使用Docker设置命名的模块< foldername>

hkmswyz6  于 2023-03-17  发布在  Docker
关注(0)|答案(1)|浏览(98)

我有一个python项目在docker容器中运行。
我的开发环境结构如下:

-- app
---- Module1
------ ClassM1.py
---- Module2
----- ClassM2.py
---- main.py
-- docker-compose.yml

在我的合成文件中,我正在安装。/app/:/app/
在开发时(在PyCharm中),我在www.example.com中使用这一导入行时没有出现问题main.py:

from app.Module1.ClassM1 import ClassM1
from app.Module1.ClassM2 import ClassM2

但当我在容器中部署代码时
“模块未找到错误:没有名为“app”的模块“
我已经试过了:

  • 在根目录中创建__init__.py
  • export PYTHONPATH=.
  • 导入sys并执行sys.path.append(./)

我发现了一个类似的问题,但没有答案:Python/Docker - ModuleNotFoundError: No module named

nfeuvbwi

nfeuvbwi1#

默认情况下,它在docker之外也不能工作。当导入一个文件时,Python只搜索入口点脚本运行的目录和sys.path,其中包括包安装目录等位置(实际上比这要复杂一些,但这涵盖了大多数情况)。
您可以使用以下命令:

from Module1.ClassM1 import ClassM1
from Module2.ClassM2 import ClassM2

PS:你的代码中有错别字

from app.Module1.ClassM2 import ClassM2 -> from app.Module2.ClassM2 import ClassM2

相关问题