python导入py文件模块
有时我们写了一些lib文件,想作为模块导入引用
python import导入模块时搜索模块文件路径在 sys.path
在root下执行的 t.py (print sys.path)
['/root', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages']
默认会在执行脚本的当前路径下去找,找不到时回去python 的lib目录等依次去找
有时需要手动将某个文件的路径加入到 sys.path中
模块路径中加入项目代码主目录
下面的代码是cloud-init 部分中的源码,将项目root目录插入到 sys.path中,用来导入项目目录下的模块文件
sys.path.insert(0, find_root())
sys.path.append(find_root())
有时可以使用imp 模块 来导入一个绝对路径的文件
[root@test ~]# cat /home/file.py def printinfo(): print("hello world") #test.py import imp testfunc = imp.load_source('testfunc', '/home/file.py') testfunc.printinfo() #打印hello world
imp.load_source('testfunc', '/home/file.py') 中的 testfunc 为导入模块的名字,这里经过测试可以随便写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
2019-11-14 awk全集