浅谈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如何通过protobuf实现rpc
Mar 06 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
Python HTTP客户端自定义Cookie实现实例
Apr 28 Python
Python机器学习之决策树算法
Dec 22 Python
python实现log日志的示例代码
Apr 28 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
python使用gdal对shp读取,新建和更新的实例
Mar 10 Python
python读取mysql数据绘制条形图
Mar 25 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
Python turtle编写简单的球类小游戏
Mar 31 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 简易输出CSV表格文件的方法详解
2013/06/20 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
php实现网站留言板功能
2015/11/04 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
python使用matplotlib绘制热图
2018/11/07 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
英国鞋网:Rubber Sole
2020/03/03 全球购物
党委书记岗位职责
2013/11/24 职场文书
同事打架检讨书
2014/02/04 职场文书
青年文明号创建承诺
2014/03/31 职场文书
企业人事任命书
2014/06/05 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
消防安全培训工作总结
2015/10/23 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang