【问题标题】:Python modules import problem: import statement in different locationPython模块导入问题:不同位置的导入语句
【发布时间】:2021-06-11 18:49:31
【问题描述】:

这是我的文件夹结构:

main.py
tools/
  sub1.py
  sub2.py

main.py:

import tools.sub1
import tools.sub2

和 sub1.py:

a = 'abc'

还有sub2.py(直接import sub1不行,是不是因为我是从根目录运行main.py?):

import tools.sub1
print(tools.sub1)

来自here,我知道为了正确调用main中的sub1、sub2,我们必须在sub2中添加语句import tools.sub1,但是,如果我想运行sub2单独出现错误

Traceback (most recent call last):
  File "sub2.py", line 1, in <module>
    import tools.sub1 as sub1
ModuleNotFoundError: No module named 'tools'

所以,我的问题是是否可以直接单独运行 sub2,同时保持我们可以正常运行 main.py 的当前设计?。提前致谢。

【问题讨论】:

    标签: python import


    【解决方案1】:

    你可以使用python -m tools.sub2运行sub2

    更多关于使用-m的信息https://docs.python.org/3/using/cmdline.html#cmdoption-m

    【讨论】:

      【解决方案2】:

      您可以通过将tools 设为python 模块来做到这一点。在您的工具目录中添加__init__.py 文件(可以为空)将使 Python 将“工具”文件夹视为模块。然后,您可以通过以下方式从 main.pysub2.py 引用 sub1

      from tools import sub1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多