浅谈python import引入不同路径下的模块


Posted in Python onJuly 11, 2017

python 包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。

下面将具体介绍几种常用情况:

(1)主程序与模块程序在同一目录下:

如下面程序结构:

`-- src
    |-- mod1.py
    `-- test1.py

若在程序test1.py中导入模块mod1, 则直接使用 import  mod1或from mod1 import *;

(2)主程序所在目录是模块所在目录的父(或祖辈)目录

如下面程序结构:

`-- src
    |-- mod1.py
    |-- mod2
    |   `-- mod2.py
    `-- test1.py

若在程序test1.py中导入模块mod2, 需要在mod2文件夹中建立空文件__init__.py文件(也可以在该文件中自定义输出模块接口); 然后使用 from mod2.mod2 import * 或import mod2.mod2.

(3)主程序导入上层目录中模块或其他目录(平级)下的模块

如下面程序结构:

`-- src
    |-- mod1.py 
    |-- mod2
    |   `-- mod2.py
    |-- sub
    |   `-- test2.py
    `-- test1.py

若在程序test2.py中导入模块mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立该文件。然后调用方式如下:

下面程序执行方式均在程序文件所在目录下执行,如test2.py是在cd sub;之后执行python test2.py

而test1.py是在cd src;之后执行python test1.py; 不保证在src目录下执行python sub/test2.py成功。

   import sys
   sys.path.append("..")
   import mod1
   import mod2.mod2

 (4)从(3)可以看出,导入模块关键是能够根据sys.path环境变量的值,找到具体模块的路径。

这里仅介绍上面三种简单情况。

以上这篇浅谈python import引入不同路径下的模块就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现linux服务器批量修改密码并生成execl
Apr 22 Python
Python线程详解
Jun 24 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
如何爬取通过ajax加载数据的网站
Aug 15 Python
Python3 全自动更新已安装的模块实现
Jan 06 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
用python写一个带有gui界面的密码生成器
Nov 06 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
PyQt5实现多张图片显示并滚动
Jun 11 Python
python 环境变量和import模块导入方法(详解)
Jul 11 #Python
Python编写登陆接口的方法
Jul 10 #Python
CentOS中升级Python版本的方法详解
Jul 10 #Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 #Python
Python 实现数据库更新脚本的生成方法
Jul 09 #Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 #Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 #Python
You might like
PHP页面实现定时跳转的方法
2014/10/31 PHP
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
vue webpack build资源相对路径的问题及解决方法
2020/06/04 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
python封装对象实现时间效果
2020/04/23 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
python打包生成so文件的实现
2020/10/30 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
Ruby如何创建一个线程
2013/03/10 面试题
教师新年寄语
2014/04/03 职场文书
职业规划实施方案
2014/06/10 职场文书
新店开张活动方案
2014/08/24 职场文书
特岗教师个人总结
2015/02/10 职场文书
爱的教育观后感
2015/06/17 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
Python中的 No Module named ***问题及解决
2022/07/23 Python