Python 中模块的定位与执行2025年3月17日 | 阅读 3 分钟 在本文中,我们将讨论用户如何在 Python 中定位模块以及使用哪些 Python 函数来执行模块。 在 Python 中定位模块当用户导入模块时,Python 解释器会在当前目录中搜索该模块。如果在目录中找不到该模块,解释器将搜索名为 PYTHONPATH 的 shell 变量中存在的所有目录。如果解释器在 shell 中找不到它,它将检查默认路径。在 UNIX 中,此默认路径是:/usr/local/lib/python/。 模块的搜索路径存储在系统模块 sys 中,作为 sys.path 变量。该变量包含当前目录,即 PYTHONPATH,以及与安装相关的默认路径。 PYTHONPATH 变量PYTHONPATH 变量是基于平台的变量,它由目录列表组成。其语法与 shell 变量的 PATH 相同。 来自 Windows 系统的 PYTHONPATH 来自 UNIX 系统的 PYTHONPATH 在 Python 中执行模块通过命令行选项,-m 选项用于定位给定模块的路径,并将其作为程序的 __main__ 模块执行。runpy 模块是 Python 的标准模块,用于在内部支持此机制。runpy 模块允许通过使用 Python 模块的命名空间而不是文件系统来定位脚本。 runpy 模块定义了两个函数:
run_module()run_module() 函数用于执行包含特定模块的代码,并将返回模块全局字典的结果。 module_name 参数应为实际的模块名称。假设模块名称指向的是一个包而不是普通模块。在这种情况下,该包将被导入,并且包内的 __main__ 子模块将被执行,它将返回模块全局字典的结果。 在执行模块之前,特殊的全局变量,即 __name__、__spec__、__file__、__cached__、__loader__ 和 __package__ 会被设置在全局字典中。 如果命名的模块是包,则 __name__ 设置为 module_name + '.__main__';否则,它将设置为 module_name 参数。 根据模块规范,__file__、__cached__、__loader__ 和 __package__ 会被正常设置。 run_path()run_path() 函数用于执行给定路径的文件中的程序,并将模块全局字典作为结果返回。给定路径可以指向 Python 源文件、编译后的字节码文件,或者包含 __main__ 模块的有效 sys.path 条目,例如包含顶级 __main__.py 文件的 zipfile。 在执行模块之前,特殊的全局变量,即 __name__、__spec__、__file__、__cached__、__loader__ 和 __package__ 会被设置在全局字典中。 如果此可选参数不等于 None,则 __name__ 变量将设置为 run_name;否则,它将设置为 <run_path>。 示例 让我们看一个 runpy 模块的例子 首先,用户需要将以下文件保存为一个名为 runpy_example.py 的脚本。 然后,用户将使用以下命令执行上述文件 输出 sum of p, q, r, s, t = 27 尽管如此,用户也可以在不导入它的情况下执行上述文件 输出 sum of p, q, r, s, t = 27 ![]() 用户还可以使用 run_path() 函数 输出 sum of p, q, r, s, t = 27 ![]() 如前所述,runpy 还支持 Python 命令行开关 -m 结论在本文中,我们讨论了用户如何定位模块以及使用 Python 标准模块 runpy 模块中的函数来执行它们。 下一主题Python 中的列表展平 |
Python 中的可变和不可变数据类型 可变或不可变是用来解释数据类型在初始化后是否能够被更新的属性的专业术语。基本解释如下:可变对象是指其内部状态可以改变的对象。在...
7 分钟阅读
当我们获得大量数据集时,将数据表快速分成相等的机会然后单独处理每个数据帧将非常有益。这只有在数据帧上的操作是...
5 分钟阅读
? 二进制是基数 2 数字系统,这意味着它只使用两个数字 - 0 和 1。另一方面,十进制是基数 10 数字系统,这意味着它使用十个数字 - 0 到 9。要在 Python 中将二进制数转换为十进制,我们...
阅读 3 分钟
引言 人工智能领域取得了巨大的进步,导致了各种算法的开发来处理复杂的任务。其中一个算法是 LightGBM,它是 Light Gradient Boosting Machine 的缩写。LightGBM 因其效率、速度和处理大规模数据集的能力而广受欢迎。
阅读 6 分钟
命令行参数和解析输入参数是编程和开发的重要方面。命令行参数不过是在程序名称之后在系统命令行中指定的参数。当我们在这些命令行参数中传递值时,这些值会直接传递到...
阅读20分钟
在本教程中,我们将学习 Python 编程语言中的 main() 函数。我们还将了解如何使用 Python 程序中的 __name__ 属性来在各种上下文中动态执行它。让我们开始了解 main()……
阅读 3 分钟
?本教程解释了什么是 GUI 以及如何使用 Python 构建 GUI 应用程序。它还展示了如何使用 wxPython 创建 GUI。GUI 应用程序是计算机程序或硬件的图形用户界面。你...
阅读 16 分钟
简介:在本教程中,我们正在学习。这里我们使用一个均匀离散随机变量:scipy.stats.randint()。这个变量继承自通用方法。它是 rv_discrete 类的一个例子。这个方法包含了任何分布的具体细节。离散均匀分布是一个相等的...
阅读 4 分钟
随机指的是可以以任何顺序获得的数据或信息的集合。Python中的random模块用于生成随机字符串。随机字符串由数字、字符和标点符号系列组成,可以包含任何模式。随机...
5 分钟阅读
在本教程中,我们将学习一个有趣的 Python 库,名为 holidays,它用于确定给定年份特定日期的假期。它返回给定日期的特定结果。我们只需要传递国家名称。然而,它只能...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India