python 这种目录结构的绝对导入和相对导入是什么?

vfwfrxfs  于 2023-01-16  发布在  Python
关注(0)|答案(1)|浏览(129)

我有一个这样的目录结构,
任务
分配1
│教学─ ─作业-1.pdf
│ ─ ─中国英语学习网assignment1.py
─ ─方法
指令─ ─初始化. py
说明─ ─ www.example.comprimality.py
我想把primality. py文件中的函数导入到assignment1.py文件中。
此目录结构的相对和绝对导入行是什么?
我也试过使用from ..Methods.primality import func
但它给了我一个错误
ImportError: attempted relative import with no known parent package
有人能解释一下我做错了什么吗?

3pmvbmvn

3pmvbmvn1#

您应该添加缺少的__init__.py,如下所示:

├── Assignment1

│       ├── Assignment-1.pdf

│       ├── __init__.py # this

│       └── assignment1.py

└── Methods

│       ├── __init__.py

│       ├── primality.py

然后转到Assignments文件夹,并从那里运行:

$ python3 -m Assignment1.assignment1 # note no py

然后python将目录结构看作是一个 package 结构,Methods/Assignment 1是包(您应该将它们重命名为Methods/Assignment 1)

相关问题