Python运行时设置环境路径后导入lib1库报错无法找到问题咨询
Python自定义包导入失败解决方案
问题核心成因
- 路径计算逻辑错误:你代码中
os.path.abspath('../Libs')是基于执行python命令时的当前工作目录计算路径,而非Test.py文件本身所在的目录。比如你在项目根目录执行python Tests/Test.py,计算出的路径会是根目录的上级目录,根本指向不到正确的Libs文件夹,自然找不到包。 - 子包缺少初始化文件:如果你使用的是Python3.3以下版本,或者项目有严格的包结构要求,需要确认lib1、lib2、lib3三个子文件夹下都存在空的
__init__.py文件,否则Python不会将其识别为可导入的包。 - 路径优先级问题:
sys.path.append是将路径添加到搜索列表末尾,如果系统中存在同名的lib1包,会优先检索其他路径下的内容,不过该情况一般不会触发「找不到包」的报错,仅作为排查参考。
可直接落地的解决方法
方案1:修复路径计算逻辑(最稳定,不受运行目录影响)
将Test.py中的路径添加代码替换为以下内容,基于Test.py自身的文件位置计算Libs的绝对路径:
import sys import os # 基于当前文件的绝对路径计算Libs目录位置 libs_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../Libs')) sys.path.append(libs_path) import lib1
方案2:固定运行目录(无需改代码)
执行脚本时切换到Tests文件夹内再运行命令:
cd Tests python Test.py
排查验证方法
在导入lib1之前添加打印语句,确认添加的路径是否正确:
print(libs_path) # 打印出来的路径直接粘贴到文件管理器访问,确认能看到lib1文件夹
内容的提问来源于stack exchange,提问作者RajeshS
相关产品推荐
相关产品推荐

