如何修复 "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__ + "../../../"))
请看附件图片,里面有详细信息
我有一个具有以下结构的 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__ + "../../../"))
请看附件图片,里面有详细信息