python引入导入自定义模块和外部文件的实例


Posted in Python onJuly 24, 2017

项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包

如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到这个app中,然后在setting中的app也配上基本就ok了

如果是本地代码,可以有几种方式,

1、这种最简单,也可能最不实用,将你的外部文件放到跟需要调用外部文件的文件同一个包下,同一目录

folder

------toinvoke.py

------tobeinvoded.py

这样在toinvoke.py 中引入

import toveinvoked 或 from tobeinvoked import *

即可

2、你的其他文件不是单个文件,或者不能如上所说放到同一目录下,而是在不同目录中,子目录

folder

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

toinvoke.py

这种情况,现在folder 下新建一个__init__.py 的空文件,此时的folder不再是一个普通的文件夹,而是一个包 package,现在像这样

folder #文件夹 现在的性质为一个python包package

------__init__.py

------tobeinvoded.py

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

toinvoke.py

这样在toinvoke.py 中引入

import folder.toveinvoked 或 from folder.tobeinvoked import *

即可

3、同理,如果是如下的情况,folderB中的模块要调用folderA中的模块,方法同上,有什么改变,你已经知道了

folderA

------tobeinvoded.py

------tobeinvodedA.py

------tobeinvodedB.py

------tobeinvodedC.py

folderB

--------toinvoke.py

这样在toinvoke.py 中引入

import folder.toveinvoked 或 from folder.tobeinvoked import *

即可

4、将要被调用的代码拷贝到$PYTHONHOME$\Lib\site-packages 下面,这个就跟Eclipse插件安装差不多

5、在$PYTHONHOME$\Lib\site-packages 下面新建一个.pth文件,比如说是MyPackage.pth,里面的内容是你的包的绝对路径比如:E:/PythonPrj

那么,在E:/PythonPrj下的所有包都可以按照包所在的相对路径引入,这个跟Eclipse插件安装的link 方式差不多

6、跟上面的差不多,也可以加个环境变量,这个就不多说了

总结、看看Python的包搜索路径

Python会在以下路径中搜索它想要寻找的模块:

1. 程序所在的文件夹

2. 标准库的安装路径

3. 操作系统环境变量PYTHONPATH所包含的路径

将自定义库的路径添加到Python的库路径中去,有如下两种方法:

1. 动态的添加库路径。在程序运行过程中修改sys.path的值,添加自己的库路径

import sys

sys.path.append(r'your_path')

2. 在Python安装目录下的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的库路径。示例如下

E:\\work\\Python\\http

E:\\work\\Python\\logging

以上这篇python引入导入自定义模块和外部文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python不规范的日期字符串处理类
Jun 10 Python
Python实现的石头剪子布代码分享
Aug 22 Python
Python机器学习logistic回归代码解析
Jan 17 Python
python方法生成txt标签文件的实例代码
May 10 Python
numpy使用fromstring创建矩阵的实例
Jun 15 Python
python读取xlsx的方法
Dec 25 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
Python求平面内点到直线距离的实现
Jan 19 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 #Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 #Python
老生常谈进程线程协程那些事儿
Jul 24 #Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 #Python
详解Python list 与 NumPy.ndarry 切片之间的对比
Jul 24 #Python
apache部署python程序出现503错误的解决方法
Jul 24 #Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 #Python
You might like
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
php防止用户重复提交表单
2015/11/02 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
JQuery筛选器全系列介绍
2013/08/27 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
python保存文件方法小结
2018/07/27 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
草房子读书笔记
2015/06/29 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书