Python运行的添加环境变量,执行一个Python文件的或者导入模块的时候,执行的逻辑。

这是简书的一个参考链接:https://www.jianshu.com/p/178c26789011

作者写的蛮不错的。

抬头就有非常重要的一段语录,我复制了下来。

package的初始化工作

一个package 被导入,不管在什么时候__init__.py的代码都只会被执行一次

>>> import package
hello world
>>> import package
>>> import package

由于 package 被导入时 __init__.py 中的可执行代码会被执行,所以小心在 package 中放置你的代码,尽可能消除它们产生的副作用,比如把代码尽可能的进行封装成函数或类。

__init__.py内的导入顺序

当我尝试导入

from package import something

import语句会首先检查something是不是__init__.py的变量,然后检查是不是subpackage,再检查是不是module,最后抛出ImportError

所以检查顺序如下:

  1. __init__.py 文件内变量
  2. 是不是package内的subpackage
  3. 是不是package内的module


Python的环境变量,就是Python在运行的时候,添加模块的一系列路径,用于导入模块的时候,需要查找的模块的相对起始路径。

首先给自己强调一点,Python在运行的时候,通过主文件运行,[无论是python xxx.py或者python abc/ccc/xxx.py]Python解释器会自动把该模块运行的目录添加到环境变量中,而且还目录具有第一优先级

也就是说,在导入模块的时候,项目下的模块导入具有第一优先级。

后面写一些自己的感受。

当我们在运行一个Python项目,首先需要一个启动模块,也就是启动文件。这个跟计算机系统的运行原理差不多,一个进程的启动,必须由父进程来辅助其启动。

运行环境相对还是比较简单,就是一些绝对路径,模块的话相对比较复杂一些。

原文地址:https://www.cnblogs.com/sidianok/p/14696037.html