python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python包导入

python包导入的两种方式

作者:Every DAV inci

本文主要介绍了python包导入的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

执行文件和目标导入模块在同一目录

直接import

比如我要在ma_main.py中导入env包中的make_env.py文件, 从而读取其中的函数

因为此时ma_main.pyenv包都在src这个根目录下, 所以可以直接import继续导入

image-20230322155321881

这里fromimport是因为make_env.py中只有一个函数就是make_env(), 所以直接import该函数, 在调用的时候可以直接写名字

image-20230322155503974

如果是from env import make_env, 那么调用make_env.py中的make_env()函数时, 还要用.进行声明

PS: from env import make_envimport env.make_env是一样的

执行文件和目标导入模块不在同一目录

如果执行文件和模块不在同一目录,这时候直接import是找不到自定义模块的。

image-20230322162705612

image-20230322162800118

例如这种情况: 要在main.py中导入pwcong包从而执行__init__.py的一些方法

然而main.py./Torch/main/下, 而pwcong./Torch/

即不在同一个目录, 此时main.py文件python解释器模块搜索的路径列表中不包含是./Torch

所以这时候就要用python中自带的sys包导入自定义模块的路径, 从而手动添加Python解释器在main.py中的模块搜索的路径列表 , 之后才能成功导入

Python解释器搜索模块的路径列表

操作步骤

导入自定义模块的步骤如下:

即在main.py的最上面几行写入如下代码手动定义该文件的python解释器路径

import sys
sys.path.append(r"C:\Users\PC\Desktop\Torch") # 要加上地址生命符r, 并且要是绝对路径

__init__.py中定义一个hello函数, 打印hello

image-20230322190716566

通过sys.path.append添加解释器模块搜索的路径, 然后通过模块名执行函数

image-20230322190633736

一个模块必须要有__init__.py文件

在Python中,一个目录要被视为一个,它必须包含一个__init__.py文件。这个文件可以是一个空文件,或者包含一些包初始化的代码。

没有__init__.py文件的目录就只是一个目录, 其他py文件无法导入该目录下的任何py文件中的函数

__init__.py文件可能包含:

命名空间

在 Python 中,命名空间是一个包含变量和函数名字的字典,用于记录每个标识符(identifier)的名称和值。Python 解释器中的每个命名空间都是一个字典对象,可以通过字典的键值对来访问其中的变量和函数。

Python 中有三种命名空间:

命名空间的作用是避免不同命名空间之间的变量或函数名冲突,并且可以更好地管理程序中的变量和函数。在Python中,可以通过使用globalnonlocal关键字来访问和修改全局和非局部命名空间中的变量。

到此这篇关于python包导入的方式的文章就介绍到这了,更多相关python包导入的方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文