考虑这个目录结构:
a-a
| b
| c
| print.py
基本上是a-a/b/c。和该目录中的 print.py 。 print.py 的内容如下所示:
def print_5():
print("5")
def print_10():
print("10")
我想在 a-a 级别将这些函数导入并使用到我当前的文件中。结构:
ls
a-a test.py
我该怎么做?
在 test.py 中,我尝试将所有函数导入为:
from a-a.b.c import f
print_5()
它给出的错误为 SyntaxError: 我理解的无效语法。因此,我将“a-a”移至“a_a”,然后它开始出现 ModuleNotFoundError:没有名为“a_a”的模块。我知道这可能是一件微不足道的事情,只是对我来说不太合适。
假设
a-a
是根目录,您首先需要更新到 a_a
,就像您已经完成的那样。 Python 模块不能包含 -
。
您还应该在每个目录中添加一个
__init__.py
以将其标记为可以导入的包。您的目录结构应如下所示:
a_a/
├── __init__.py
├── b/
│ ├── __init__.py
│ ├── c/
│ ├── __init__.py
│ ├── print.py
└── test.py
您还需要确保a_a的父目录位于您的python路径中。您可以从父目录运行脚本或更新
PYTHONPATH
环境变量。