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导入时小括号大作用
Jan 10 Python
Django 添加静态文件的两种实现方法(必看篇)
Jul 14 Python
Python浅复制中对象生存周期实例分析
Apr 02 Python
运行django项目指定IP和端口的方法
May 14 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
Python中函数的返回值示例浅析
Aug 28 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
python实现批处理文件
Jul 28 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
python文件排序的方法总结
Sep 13 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 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
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
python自带的http模块详解
2016/11/06 Python
Python简易版图书管理系统
2019/08/12 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
servlet面试题
2012/08/20 面试题
自我评价的范文
2014/02/02 职场文书
材料化学专业求职信
2014/07/15 职场文书
公务员政审材料范文
2014/12/23 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
导游词之太原天龙山
2020/01/02 职场文书
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL