import引用自定义包、模块sys.path.append() ---转

发布时间 2023-09-22 11:14:32作者: NLazyo

https://blog.csdn.net/Frank_LJiang/article/details/122656604

import引用自定义包、模块)sys.path.append(
问题
sys.path.append()
os.path.dirname(__file__)
问题
当引用不同文件下的自定义包时,容易出现以下问题

ModuleNotFoundError: No module named 'ge'

由于import xxx时,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块,不能搜索其它目录。因此,需要我们手动使用sys.path.append()添加

sys.path.append()
手动添加python能搜索的目标目录

import sys
# print(sys.path) # 显示当前python解释器会搜索的目录

sys.path.append('需要引用模块的地址') # 手动添加自定义搜索目录

# sys.path.append("..") # 添加当前路径的上一级目录

os.path.dirname(file)
import os

path1 = os.path.dirname(__file__)
print(path1) # 获取当前运行脚本的绝对路径

path2 = os.path.dirname(os.path.dirname(__file__))
print(path2) # 获取当前运行脚本的绝对路径的上一级路径(去掉最后一个路径)

path3 = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
print(path3) # 获取当前运行脚本的绝对路径的上一级路径的上一级路径(去掉最后2个路径)
# ......

path6 = os.__file__
print(path6) # 获取os所在的目录

比如

sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
# 表示添加当前目录的上一级目录到python解释器的搜索目录中