如何修复 "no module named 'app_one'"

How to fix "no module named 'app_one'"

我有一个具有以下结构的 Python 包。

>python_package       # package root directory
    >app_one          # subpackage directory
        >__init__.py
        >views.py
   
    >app_two          # another subpackage directory
        >__init__.py
        >views.py

app_one/views.py的代码:

def show(): 
    print('do something')

app_two/views.py 的代码:

from app_one.views import show
show()

问题是,每当我尝试从终端 运行 views.py of app_two 时,我都会收到错误消息

No module named 'app_one'

但是当我打开 PyCharm IDE 中的包 python_package 时,我没有遇到任何问题,一切正常。

发生此错误是因为文件 app_one 的路径不在当前路径中,您必须使用 sys.path.append 将其添加到路径中尝试:

import sys
sys.path.append('./app_one')
from views import show
show()

我已经创建了与您相同的目录结构并进行了尝试,它正在运行。

我认为您缺少的是在导入 app_two/views.py:

之前添加这一行
sys.path.insert(0, os.path.abspath(__file__ + "../../../"))

请看附件图片,里面有详细信息