python - ModuleNotFoundError -> 导入的模块无法导入另一个模块
问题描述
工作目录的形状如下:
* main_script.py
/ module_to_import
* __init__.py
* script_1.py
* script_2.py
在 main_script.py 我们有
from module_to_import import script_1
script_1.call_something()
在 script_1.py 我们有
import script_2
def call_something():
something = script_2.get_something()
something = something + 1
return something
当 main_script.py 运行时,这将返回一个
ModuleNotFoundError:没有名为“script_2”的模块
我知道这可以通过直接将 script_2 导入 main_script 来暂时解决。
有没有办法解决这个问题,以便即使 main_script 本身没有导入 script_2 , script_1 也可以可靠地导入 script_2 ?
解决方案
当您的包被构造为子包时,在 script_1.py 中,您可以使用绝对导入
import module_to_import.script_2 as script_2
或相对之一:
from . import script_2
您可以在此处找到有关它的文档: https ://docs.python.org/3/tutorial/modules.html#intra-package-references
推荐阅读
- python - 检查二维列表的索引并打印出基于二维列表的索引
- php - PHP while 循环将每 2 行分隔成一个 div
- rocketmq - 在rocketmq中使用集群时如何设置用户名和密码?
- magento2 - Magento 2自定义列排序不起作用
- javascript - react-create-app ENVIRONMENT 变量配置
- php - 为什么 form::text 占据浏览器视口的所有宽度以及如何使其更窄
- c# - 如何让应用程序运行多个进程,每个进程使用一个单独的 XML 设置文件?
- c++ - 如何在其他 Visual Studio 项目中包含 CMake 库/项目?
- node.js - Keycloak 码头工人身份验证
- python - 如何在 Python 中改进此循环以提高速度