我应该如何构造python项目以解决导入错误?

我应该如何构造python项目以解决导入错误?,python,python-3.x,pycharm,Python,Python 3.x,Pycharm,我的项目结构组织如下: 我的要求是,我需要创建多个“应用程序”,它们利用common\util.py和service\writer.py中包含的一些公共代码(在本例中,这些文件包含打印语句) app01\main.py的内容是: from ...common.util import print_text print_text("Hello World!") 当我执行app01/main.py(python.exe C:/ProjectX/code/apps/app01/m

我的项目结构组织如下:

我的要求是,我需要创建多个“应用程序”,它们利用common\util.py和service\writer.py中包含的一些公共代码(在本例中,这些文件包含打印语句)

app01\main.py的内容是:

from ...common.util import print_text
print_text("Hello World!")
当我执行app01/main.py(
python.exe C:/ProjectX/code/apps/app01/main.py
)时,我收到以下异常:

File "C:/ProjectX/code/apps/app01/main.py", line 1, in <module>
from ...common.util import print_text
ValueError: attempted relative import beyond top-level package
文件“C:/ProjectX/code/apps/app01/main.py”,第1行,在
从…common.util导入打印文本
ValueError:尝试在顶级包之外进行相对导入

我尝试移动文件/目录,但无法解决此问题。如果有人能告诉我如何解决这个问题,我将不胜感激。

如果您还没有,请查看一下,您应该能够使用
sys.path.insert(0),
或更改或修改包结构来合并一个解决方案,我能够解决它。这就是我所做的:

  • \uuuu init\uuuuu.py
    添加到“code”目录中
  • 在'app01/main.py'中,我将
    从…common.util import print_text
    更改为
    从code.common.util import print_text
  • 更新结构:


    我还想指出,我不是Python方面的专家。如果有更好的方法来解决这个问题,请务必让我知道。

    这个问题的问题是没有“单一”或“更好”的方法来组织您的项目。其中一种流行的形式是转换代码并使用。要让它发挥作用并第一次理解它并不容易。