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 命令行参数sys.argv
Sep 06 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
python http基本验证方法
Dec 26 Python
python集合是否可变总结
Jun 20 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
django 解决扩展自带User表遇到的问题
May 14 Python
python与js主要区别点总结
Sep 13 Python
python 如何设置守护进程
Oct 29 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 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调用三种数据库的方法(3)
2006/10/09 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
Js的MessageBox
2006/12/03 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
js中style.display=""无效的解决方法
2014/10/30 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
python字符串对其居中显示的方法
2015/07/11 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python异常处理知识点总结
2019/02/18 Python
详解python内置模块urllib
2020/09/09 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
文明学生事迹材料
2014/01/29 职场文书
执行总经理岗位职责
2014/02/03 职场文书
《阳光》教学反思
2014/02/23 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
2014年标准化工作总结
2014/12/17 职场文书
预备党员转正材料
2014/12/19 职场文书
地震慰问信
2015/02/14 职场文书
2015年项目工作总结
2015/04/29 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
学校教代会开幕词
2016/03/04 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android