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发送HTTP请求的方法小结
Jul 08 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
Django 视图层(view)的使用
Nov 09 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
基于python读取.mat文件并取出信息
Dec 16 Python
如何使用python传入不确定个数参数
Feb 18 Python
基于Python实现流星雨效果的绘制
Mar 18 Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 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实现的简单压缩英文字符串的代码
2008/04/24 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
jquery中ajax学习笔记3
2011/10/16 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
python函数局部变量用法实例分析
2015/08/04 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
Python Pandas 箱线图的实现
2019/07/23 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
捷克玩具商店:Bambule
2019/02/23 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
护士的岗位职责
2013/12/04 职场文书
工作保证书范文
2014/04/29 职场文书
初中中等生评语
2014/12/29 职场文书
学生犯错保证书
2015/05/09 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
详解Redis复制原理
2021/06/04 Redis