浅谈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 相关文章推荐
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 Python
详解python之配置日志的几种方式
May 22 Python
python中logging库的使用总结
Oct 18 Python
Python安装pycurl失败的解决方法
Oct 15 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
Python argparse模块应用实例解析
Nov 15 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
属性与 @property 方法让你的python更高效
Sep 21 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
C# Assembly类访问程序集信息
2009/06/13 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP设计模式之观察者模式定义与用法分析
2019/04/04 PHP
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
教你如何用node连接redis的示例代码
2018/07/12 Javascript
js实现每日签到功能
2018/11/29 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
python set集合使用方法解析
2019/11/05 Python
简单了解python元组tuple相关原理
2019/12/02 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
解决python运行启动报错问题
2020/06/01 Python
Python flask框架端口失效解决方案
2020/06/04 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
Python ellipsis 的用法详解
2020/11/20 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
struct和class的区别
2015/11/20 面试题
大学自主招生自荐信范文
2014/02/26 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
华清池导游词
2015/02/02 职场文书
留学推荐信英文范文
2015/03/26 职场文书