python跨目录调用

来源:互联网 发布:代理服务器源码 编辑:程序博客网 时间:2024/06/03 18:10

本文介绍pyhton的跨目录调用问题。

在python中有时候我们需要调用另一.py文件中的方法或者类。如果该.py文件与当前文件位于同一目录下那么问题非常容易解决。如果两个.py文件位于不同的目录下就比较麻烦。

下面分别介绍如下:

1.两个.py文件位于同一目录下:

假设两个.py文件分别为test1.py,   test2.py。现在在test2中想要调用test1.py中的fun1函数。

那么可以直接在test2中导入test1模块,代码为:

import test1test1.fun1() #调用#或着直接导入所需函数from test1 import fun1fun1()#注意此时可以直接以函数名加括号的方式调用
2.两个.py文件位于不同的目录下:

假设两个.py文件分别为test1.py,   test2.py,位于不同的目录。现在在test2中想要调用test1.py中的fun1函数。

首先要确保test1.py文件所在的目录,在python的搜索路径中,这时候需要添加环境变量。因为在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入

口脚本运行目录和sys.path中包含的路径。

添加环境变量的命令:

#python3自动加载sys模块sys.path.insert(0, 'test1.py所在绝对路径') #或者使用sys.path.append('test1.py所在绝对路径')
然后就是以文件包的形式导入,这时候需要在test2.py文件所在目录下创建__init__.py文件,文件可以为空。该文件的主要作用是初始化Python包。如果目录下面包含了该文

件,Python解释器就会将该目录当做一个包,下一步就可以使用import语句在别的.py脚本中引用该目录下的文件。

如果创建的__init__.py为空则可以这样导入:

from 包名.test1 import fun1

如果在创建的__init__.py的文件中已经将test1导入包,方法是在__init__.py文件中添加语句

from test1 import fun1

这样就可以直接在包的水平直接导入函数

from 包名 import fun1
导入后,调用函数方式与1中相同。









原创粉丝点击