浅谈python import引入不同路径下的模块
作者:jingxian 发布时间:2022-03-12 14:21:38
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环境变量的值,找到具体模块的路径。
这里仅介绍上面三种简单情况。


猜你喜欢
- 人脸美白原理人脸美白原理说透了,就是一种图像的颜色空间处理,所以我们需要通过颜色空间进行设计。不过,我们先来参考以下PS对于图像美白的处理步
- 本文实例讲述了Python实现OpenCV的安装与使用。分享给大家供大家参考,具体如下:由于下一步要开始研究下深度学习,而深度学习领域很多的
- 将dataframe中的NaN替换成希望的值import pandas as pddf1 = pd.DataFrame([{'col
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML&nb
- 列表生成式可以使用列表生成式生成 列表元素。例如:列表还支持 if … else 与 for 循环组合的单行表达式进行
- 本文实例讲述了Ubuntu下使用Python实现游戏制作中的切分图片功能。分享给大家供大家参考,具体如下:why拿到一个人物行走的素材,要用
- 一、MySQL Workbench的下载Workbench是MySql图形化的管理工具,可以在Workbench里输入MySql的语句,这可
- Event是Javascript中的重要事件,event代表事件的状态,专门负责对事件的处理,它的属性和方法能帮助我们完成很多和用户交互的操
- 我们的规范到底做到哪一步算是发挥良好的价值?其实一件事物我们理解错根本目的会导致出大不一样的结果,直接反应在设计师到底要体现什么的价值。想想
- 在 Python 中一切都是对象。如果要在 Python 中表示一个对象,除了定义 class 外还有哪些方式
- 1. 新建.py文件# pip install kafka-pythonfrom kafka import KafkaConsumerimp
- 分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和
- 中间件是我们在软件开发中的一个古老而强大的概念,当我们在应用程序中使用路由相关模式时,它非常有用。如果您不太了解中间件的含义,Nodejs框
- 自控烟花升空 实现效果描述效果代码地址解析main.pycore.pyfireworks.py 写在最后实现效果描述这大过年的不弄点有意思的
- join用来连接字符串,split恰好相反,拆分字符串的。不用多解释,看完代码,其意自现了。>>>li = ['m
- 本文实例为大家分享了javascript不同颜色Tab标签切换效果的实现代码,供大家参考,具体内容如下具体代码:<html> &
- 这里分享一个常用的价格格式化的一个方法,在电商的价格处理中非常的实用,我们可以看一个效果这里在价格数据的地方使用了一个过滤器,通过这个过滤器
- current_date()只显示的是当前时间的日期例如:select current_date() from a ;结果:2021-08-
- 本文实例讲述了PHP日志LOG类定义与用法。分享给大家供大家参考,具体如下:<?php/*** PHP log 类 */class C
- 背景介绍#ubuntu 20.04 版本系统自带的 MySQL 版本是 8.0,普通方法很难安装 5.7 版本的。由于 8.0 版本较 5.