Python中在脚本中引用其他文件函数的实现方法


Posted in Python onJune 23, 2016

在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址。所以如果要在当前脚本引用其他文件,除了将文件放在和脚本同一目录下,还有以下几种方法,

1. 将文件所在位置添加到sys.path中

import sys
sys.path.insert(0, '/path/to/application/app/folder') # or sys.path.append('/path/to/application/app/folder')

import file

2. 在文件目录下新建__init__.py文件然后调用文件

from application.app.folder.file import func_name

init.py文件

a).init.py文件的作用

该文件的主要作用使初始化Python包。如果目录下面包含了该文件,Python解释器就会将该目录当做一个包,下一步就可以使用import语句在别的.py脚本中引用该目录下的文件。一个标准Python模块的结构如下所示:

package/
  __init__.py
  file.py
  file2.py
  subpackage/
    __init__.py
    submodule1.py
    submodule2.py

b). __init__文件可以为空但可以用来建立对包的需求。一般来说会在该文件中写那些类,函数等需要被导入到包水平,从而可以被方便的引用。比如:如果file.py文件中有一个File类,在init.py文件中啥都没写时引用File类需要这样操作:

from package.file import File

如果在__init__.py文件中将file导入包,那就在包水平可以直接引用File类:

# in your __init__.py
from file import File

# in your script
from package import File

此外,还需要注意的一点是__init__.py文件中的all变量。

如果解释器在__init__.py文件中观察到了__all__变量,那么在运行from package import *时就只会引入__all__变量中列出的那些模块。

例如:如果想在上述结构的只引入submodule1模块,那么可以在subpackage/__init__.py文件中定义__all__ = ['submodule1'],当引用subpackage时from subpackage import *就只引入了submodule1模块。

3. 将文件所在目录添加到python的环境变量

export PYTHONPATH=$HOME/pathToYourScripts/:#PYTHONPATH

以上就是小编为大家带来的Python中在脚本中引用其他文件函数的实现方法全部内容了,希望大家多多支持三水点靠木~

Python 相关文章推荐
Python 变量类型及命名规则介绍
Jun 08 Python
Python编程之属性和方法实例详解
May 19 Python
Python守护进程和脚本单例运行详解
Jan 06 Python
基于数据归一化以及Python实现方式
Jul 11 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
python3实现mysql导出excel的方法
Jul 31 Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 Python
django 解决扩展自带User表遇到的问题
May 14 Python
python 调整图片亮度的示例
Dec 03 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 Python
python中的lambda表达式用法详解
Jun 22 #Python
深入浅析python中的多进程、多线程、协程
Jun 22 #Python
Python按行读取文件的简单实现方法
Jun 22 #Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 #Python
详解Python中的from..import绝对导入语句
Jun 21 #Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 #Python
深入解析Python中的__builtins__内建对象
Jun 21 #Python
You might like
PHP脚本的10个技巧(3)
2006/10/09 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
js 窗口抖动示例
2013/09/04 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
详解Python中with语句的用法
2015/04/15 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
如何利用python查找电脑文件
2018/04/27 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
python实现dijkstra最短路由算法
2019/01/17 Python
Python实现京东秒杀功能代码
2019/05/16 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
盛大二次面试题
2016/11/18 面试题
党支部换届选举方案
2014/05/08 职场文书
工作建议书范文
2014/05/13 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
借钱欠条怎么写
2015/07/03 职场文书