相关文章推荐
深沉的松鼠  ·  程序员35岁后能干什么_程序员35岁之后·  昨天    · 
被表白的围巾  ·  联想小新13pro锐龙版网卡_联想小新Pro ...·  14 小时前    · 
坐怀不乱的铅笔  ·  C++ tbb::atomic<bool> ...·  1 年前    · 
礼貌的金鱼  ·  Django 安装 | 菜鸟教程·  1 年前    · 
酒量小的眼镜  ·  运行时错误9下标越界的处理方法_工程1 ...·  2 年前    · 
乐观的炒饭  ·  typescript 数组删除元素-掘金·  2 年前    · 
听话的针织衫  ·  SQL进阶--hive中的时间函数 - 知乎·  2 年前    · 
小百科  ›  python 如何引用上级目录的模块开发者社区
python
很酷的手套
1 年前
作者头像
py3study
0 篇文章

python 如何引用上级目录的模块

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > python3 > python 如何引用上级目录的模块

python 如何引用上级目录的模块

作者头像
py3study
发布 于 2020-01-09 23:14:16
5.8K 0
发布 于 2020-01-09 23:14:16
举报

今天,做一个测试,想在当前python中引用上层目录的模块;呃,一番搜索。

先看一下目录情况:

[root@zabbix test]# tree
├── t1.py
├── t2
│   └── t2.py
└── xxu
    └── test.py
2 directories, 3 files

其实,最开始仅仅是想,test.py中可以调用t1.py中函数:

直接使用的效果:

[root@zabbix xxu]# cat test.py 
#/usr/bin/env python
#coding:utf-8
import t1
print t1.t1()
[root@zabbix xxu]# python test.py 
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    import t1
ImportError: No module named t1

一番搜索以后,发现原理就是,通过os.path.append("路径")的方式,将python的环境变量切换到上一级,就可以直接引用t1模块了

[root@zabbix xxu]# cat test.py 
#/usr/bin/env python
#coding:utf-8
import sys
sys.path.append("/test/test")
import t1
print t1.t1()
[root@zabbix xxu]# python test.py 
t1 test

必须使用绝对路径

第二种扩展:

就是通过test.py调用t2.py中的函数

原理就是在t2目录中创建一个空文件__init__.py,这样python就识别t2这个目录是一个包,不然就仅仅为目录

[root@zabbix test]# tree
├── t1.py
├── t1.pyc
├── t2
│   ├── __init__.py
│   └── t2.py
└── xxu
    └── test.py
2 directories, 5 files
[root@zabbix xxu]# cat ../t2/t2.py 
#/usr/bin/env python
#coding:utf-8
def t2():
 
推荐文章
深沉的松鼠  ·  程序员35岁后能干什么_程序员35岁之后
昨天
被表白的围巾  ·  联想小新13pro锐龙版网卡_联想小新Pro13 锐龙版简测
14 小时前
坐怀不乱的铅笔  ·  C++ tbb::atomic<bool> 声明、读取、重新赋值_51CTO博客_std::atomic_bool
1 年前
礼貌的金鱼  ·  Django 安装 | 菜鸟教程
1 年前
酒量小的眼镜  ·  运行时错误9下标越界的处理方法_工程1 运行时错误 9 下标越界_Angel456258的博客-CSDN博客
2 年前
乐观的炒饭  ·  typescript 数组删除元素-掘金
2 年前
听话的针织衫  ·  SQL进阶--hive中的时间函数 - 知乎
2 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南