Python子模块导入

yl_low

我试着阅读其他类似的问题,但答案对我却不起作用,例如使用__init__.py导入Python子模块,模块没有属性

我有这样的文件夹结构:

python_scripts
├── lib
│   ├── __init__.py      # import lib.talk
│   └── talk.py          # def sayhello(x): print(x)
│   
├── src
│   ├── __init__.py      # import lib.talk
│   └── data
│       ├── __init__.py  # import lib.talk
│       └── main.py      # from lib.talk import sayhello
│                          sayhello('hi')
│
└── __init__.py          # import lib.talk

这将引发错误:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from lib.talk import sayhello
ModuleNotFoundError: No module named 'lib.talk'

奇怪的是,如果我只是在main.py中“导入lib”,就没有错误。我该如何解决?

我使用的是Windows,因此我非常希望避免使用sys.path方法,因为我们不想对其中的路径进行硬编码(以后可能会被其他团队使用)。

它是

main.py文件中,在顶部添加以下内容。

import sys
path = r'{path_to_python_scripts}'

if path not in sys.path:
    sys.path.append(path)

# Now import
import lib

要么

import sys, os
path = os.path.abspath('../..')

if path not in sys.path:
    sys.path.append(path)

# Now import
import lib

如何在给定完整路径的情况下导入模块?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档