锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Python如何导入自己编写的py文件

时间:2022-09-02 22:30:01 py204带紧线螺母油压变送器

一. 想要达到的效果

  1. 新文件夹集中管理自编模块

  2. 可在其它py文件内import 自编模块,像import第三方库是一样的

二. 实现的方法

步骤1:将编号的模块 *.py在我的夹放入我的计算机中:F:\OneDrive\PythonPrj\_myFunction

image-20211119224257504

步骤2:新用户/系统环境变量。

变量名:PYTHONPATH

变量值:文件夹路径

然后可以达到预期的效果,以下三种import方式均可。

这样做的原则是,Python解释器将在以下三个位置找到import的模块:

  1. 当前文件所在目录
  2. 环境变量PYTHONPATH指定的目录
  3. Python 默认安装目录

Python中sys.path解释器可以记录变量Import如下图所示:

因此,可以操作sys.path代码如下:

sys.path这里用的是列表append在列表中添加一条路径,然后在此路径下成功导入模块a。这种方法写了两行代码,不方便,只适合临时使用。

三. 进阶用法

如果有更多的自编模块,或者想在自编模块中添加解释文档,您仍然希望将每个自编模块单独存储在文件夹中,以便于管理和维护。

然后在文件夹(如myPackage1)存储自编模块。

此时,如果您想导入模块,请遵循以下写法:

这是一级子文件夹的写法,更多级别的文件夹可以一直点击(.)当然,一级子文件夹一般使用,二级几乎不使用。

四. 使用_init_.py控制导入文件夹时执行的操作

以上导入方法一次只能导入文件夹中的一个模块。如果我们想控制一次导入文件夹中的所有模块,而不是使用点号,我们需要使用它_init_.py文件

该文件需要与模块在同一目录中,如下图所示,Python中将拥有_init_.py文件夹称为包

每次import myPackage1时,_init.py会自动执行一次,所以也叫包初始化文件。利用这一特性,我们可以在本文件中编写一些代码来控制导入文件夹myPackage1.行为。写这样的初始化文件:

import sys # 将__init__.py加入文件目录Python在搜索目录中,否则会提示找不到myModule1 sys.path.append(__file__[:-12])  import myModule1 

然后,在其他地方py文件中导入myPackage1,因为_init_.py自动执行文件,myModule文件将自动导入。

当然,即使包的初始化文件是写的import 模块,还是可以用的 import myPackage1.myModule 以这种方式导入。包初始化文件不会对原始导入模式产生任何影响。

另一种写法,可以一次导入包中某模块中定义的函数和属性,像这样写_init_.py文件:

import sys # 将__init__.py加入文件目录Python在搜索目录中,否则会提示找不到myModule1 sys.path.append(__file__[:-12])  from myModule1 import * 

然后,在其他地方py导入文件时这样写:

可见,可直接使用myModule1中定义的函数。

总结一下,导入模块的写法和_init_.py写法要一致,即要么都import 包名,或全部from 包名 import *,这样才能达到预期的效果。

我对Python理解还不够深入,只分享一些探索出来的规则,希望能有所帮助。如,请评论指出。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章