非常教程

Python参考手册

输入 | Importing

runpy

2.5版本中的新功能。

源代码: Lib / runpy.py

runpy模块用于定位和运行Python模块,而无需先导入它们。它的主要用途是实现-m命令行开关,允许脚本使用Python模块命名空间而不是文件系统进行定位。

runpy模块提供两个功能:

runpy.run_module(mod_name, init_globals=None, run_name=None, alter_sys=False)

执行指定模块的代码并返回生成的模块全局变量字典。该模块的代码首先使用标准导入机制(详情请参阅PEP 302),然后在新的模块名称空间中执行。

如果提供的模块名称引用的是包而不是普通模块,则会导入__main__该包,然后执行该包中的子模块,并返回生成的模块全局变量字典。

可选的字典参数init_globals可用于在代码执行之前预先填充模块的全局字典。提供的字典将不会被修改。如果在提供的字典中定义了以下任何特殊全局变量,则这些定义将被覆盖run_module()

特殊的全局变量__name____file____loader____package__是在全局字典执行模块代码之前设置(注意,这是一组变量最小-其他变量可以被隐式设置为一个解释实现细节)。

__name__如果此可选参数不是,则设置为run_name;否则Nonemod_name + '.__main__'如果命名模块是包,则返回mod_name参数。

__file__被设置为由模块加载器提供的名称。如果加载程序没有提供文件名信息,则将此变量设置为None

__loader__设置为用于检索模块代码的PEP 302模块加载器(此加载器可能是标准导入机制的包装器)。

__package__如果命名的模块是一个包,则设置为mod_namemod_name.rpartition('.')[0]

如果参数alter_sys供给和的计算结果为True,然后sys.argv[0]用的值进行更新__file__,并sys.modules[__name__]与正在执行的模块的临时模块的对象更新。双方sys.argv[0]sys.modules[__name__]恢复到原来的值在函数返回之前。

请注意,这种操作sys不是线程安全的。其他线程可能会看到部分初始化的模块,以及更改的参数列表。建议在sys从线程代码调用此函数时将模块保留为独立模式。

另请参阅

-m选项提供了与命令行相同的功能。

在版本2.7中更改:通过查找__main__子模块增加了执行包的功能

runpy.run_path(file_path, init_globals=None, run_name=None)

在指定的文件系统位置执行代码并返回生成的模块全局变量字典。与提供给CPython命令行的脚本名称一样,提供的路径可能引用Python源文件,编译的字节码文件或包含__main__模块的有效sys.path条目(例如包含顶级__main__.py文件的zip 文件)。

对于简单的脚本,指定的代码只是在新的模块名称空间中执行。对于有效的sys.path条目(通常是一个zip文件或目录),该条目首先添加到开头sys.path。该功能然后__main__使用更新的路径查找并执行模块。请注意,如果在指定位置没有此类模块,则没有针对调用__main__位于其他位置的现有条目的特殊保护sys.path

可选的字典参数init_globals可用于在代码执行之前预先填充模块的全局字典。提供的字典将不会被修改。如果在提供的字典中定义了以下任何特殊全局变量,则这些定义将被覆盖run_path()

特殊的全局变量__name____file____loader____package__是在全局字典执行模块代码之前设置(注意,这是一组变量最小-其他变量可以被隐式设置为一个解释实现细节)。

__name__如果此可选参数不是,则设置为run_nameNone'<run_path>'

__file__被设置为由模块加载器提供的名称。如果加载程序没有提供文件名信息,则将此变量设置为None。对于简单的脚本,这将被设置为file_path

__loader__设置为用于检索模块代码的PEP 302模块加载器(此加载器可能是标准导入机制的包装器)。对于简单的脚本,这将被设置为None

__package__ is set to __name__.rpartition('.')[0].

sys模块也进行了一些改动。首先,sys.path可以如上所述进行改变。sys.argv[0]用正在执行的模块的临时模块对象的值更新file_pathsys.modules[__name__]更新。sys在函数返回之前,所有对项目的修改都会被恢复。

请注意,与此不同run_module()sys在此函数中所做的更改不是可选的,因为这些调整对于允许执行sys.path条目至关重要。由于线程安全性限制仍然适用,因此在线程代码中使用此函数应该使用导入锁进行序列化或委托给单独的进程。

另请参阅

命令行上的等效功能的接口选项(python path/to/script)。

2.7版本的新功能。

另请参阅

PEP 338 - 执行由Nick Coghlan编写和执行的作为脚本PEP的模块。 PEP 366 - 主要模块显式相对进口PEP由Nick Coghlan编写和实施。

命令行和环境 - CPython命令行详细信息

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法