浅谈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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
Python向日志输出中添加上下文信息
May 24 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
Dec 12 Python
Python 音频生成器的实现示例
Dec 24 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
Python根据指定文件生成XML的方法
Jun 29 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
python如何将mat文件转为png
Jul 15 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 session有效期session.gc_maxlifetime
2011/04/20 PHP
php实现简单文件下载的方法
2015/01/30 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
flask实现验证码并验证功能
2019/12/05 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
《白鹅》教学反思
2014/04/13 职场文书
幼儿园评语大全
2014/04/17 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
中学生学习保证书
2015/02/26 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python