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之从格式化表达式到方法
Sep 28 Python
详解Python字符串对象的实现
Dec 24 Python
Python对象属性自动更新操作示例
Jun 15 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
python计算两个矩形框重合百分比的实例
Nov 07 Python
Python设计模式之策略模式实例详解
Jan 21 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
python 实现生成均匀分布的点
Dec 05 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 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数据库连接
2006/10/09 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python 发送json数据操作实例分析
2019/10/15 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
调解员先进事迹材料
2014/02/07 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
个人简历求职信范文
2015/03/20 职场文书
Go timer如何调度
2021/06/09 Golang
为Centos安装指定版本的Docker
2022/04/01 Servers
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android