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分割文件的常用方法
Nov 01 Python
Python open()文件处理使用介绍
Nov 30 Python
python获取本机外网ip的方法
Apr 15 Python
详解Django中的过滤器
Jul 16 Python
简单解决Python文件中文编码问题
Nov 22 Python
python+django加载静态网页模板解析
Dec 12 Python
Python操作MySQL模拟银行转账
Mar 12 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
使用Tkinter制作信息提示框
Feb 18 Python
Python修改DBF文件指定列
Dec 19 Python
Python 多线程之threading 模块的使用
Apr 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
PHP7 弃用功能
2021/03/09 PHP
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
解决python "No module named pip" 的问题
2018/10/13 Python
python 杀死自身进程的实现方法
2019/07/01 Python
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
升职自荐信
2013/11/28 职场文书
自我评价范文
2013/12/22 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
爱情寄语大全
2014/04/09 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
2015年团支书工作总结
2015/04/03 职场文书
Pandas数据结构之Series的使用
2022/03/31 Python
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电
vue实力踩坑之push当前页无效
2022/04/10 Vue.js