绝对路径
总是从根目录开始
H:\PyCharmProjects\tutorials_2\jd_crawler\main.py
相对路径
jd_crawler\main.py
.
和..
.
代表当前目录, ..
代表父目录工作目录
当前执行命令所在的目录
# 将工作目录添加进当前的路径列表
sys.path.append(os.getcwd())
查看当前路径列表
只有在路径列表当中的包和模块才可以导入和调用
import sys
print(sys.path)
路径搜索顺序
PYTHONPATH
路径site-packages
可以向路径列表添加路径
sys.path.append(r"H:\PyCharmProjects\tutorials_2")
ModuleNotFoundError: No module named 'xxxx'
为什么在pycharm中不报错, 在命令行当中报错
Pycharm会自动将当前项目的根目录添加到路径列表当中
`ModuleNotFoundError: No module named 'parser.search'; 'parser' is not a pac kage`
`ModuleNotFoundError: No module named '__main__.jd_parser'; '__main__' is no t a package`
__main__
主程序模块名会被修改为__main__
ValueError: attempted relative import beyond top-level package
当前访问路径已经超过了python已知的最大路径
from tutorial_2.jd_crawler.jd_parser.search import parse_jd_item
top-level package 指的是上述from导入命令中的首路径tutorial_2, 而不是根据目录结构