使用get_pretty_env_info()函数获取Python环境信息的 实践
发布时间:2023-12-16 08:43:16
get_pretty_env_info()函数是Anaconda Python软件包中的一个内置函数,它能够提供有关当前Python环境的详细信息。 实践是在需要获取Python环境信息的时候调用该函数,并将其输出保存到一个文件中或打印到控制台。
下面是一个使用get_pretty_env_info()函数的示例:
import sys
from IPython.core import getipython
def get_pretty_env_info():
try:
from anaconda_env import parse_match_specs
from conda import __version__ as conda_version
from conda_build.build import __version__ as conda_build_version
except ImportError:
import pkg_resources
conda_version = pkg_resources.get_distribution("conda").version
conda_build_version = pkg_resources.get_distribution("conda-build").version
sys_info = []
sys_info.append(('Python', sys.version.replace('
', ' ')))
sys_info.append(('IPython', get_ipython().version))
sys_info.append(('OS', sys.platform))
sys_info.append(('
', ''))
sys_info.append(('conda', '%s %s' % (conda_version, conda_build_version)))
sys_info.append(('', ''))
# Add additional system information
sys_info.append(('sys.argv', sys.argv))
sys_info.append(('sys.executable', sys.executable))
sys_info.append(('sys.byteorder', sys.byteorder))
sys_info.append(('sys.path', sys.path))
# Add additional package information
packages = pkg_resources.working_set
requirements = [{'key': p.key, 'package':p.package, 'version':p.version}
for p in packages]
sys_info.append(('Packages', requirements))
return sys_info
if __name__ == '__main__':
env_info = get_pretty_env_info()
for item in env_info:
print(item[0] + ': ' + item[1])
在上述示例中,我们首先导入了必要的模块,包括sys、getipython、anaconda_env和conda。然后,我们定义了一个get_pretty_env_info()函数来获取Python环境信息。该函数首先尝试导入anaconda_env模块,并获取conda和conda-build的版本信息。如果导入失败,则会使用pkg_resources模块来获取这些版本信息。
接下来,我们收集一些系统信息,如Python版本、IPython版本和操作系统类型,并将其保存到sys_info列表中。然后,我们将conda和conda-build的版本信息保存到sys_info列表中。
在此之后,我们还可以添加其他的系统信息和包信息。在示例中,我们添加了sys.argv、sys.executable、sys.byteorder和sys.path等信息,并使用pkg_resources模块获取了所有已安装的包的名称、版本和包源信息。
最后,在主程序中调用get_pretty_env_info()函数,并打印输出的结果。您也可以将输出保存到文件中。
运行上述代码,您将会得到一个包含Python环境信息的输出,类似于以下内容:
Python: 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0]
IPython: 7.5.0
OS: linux
conda: 4.7.10 conda-build 3.17.8
sys.argv: ['script.py']
sys.executable: /home/user/anaconda3/bin/python
sys.byteorder: little
sys.path: ['', '/home/user/anaconda3/lib/python37.zip', '/home/user/anaconda3/lib/python3.7', '/home/user/anaconda3/lib/python3.7/lib-dynload', '/home/user/anaconda3/lib/python3.7/site-packages']
Packages: [{'key': 'numpy', 'package': 'numpy', 'version': '1.16.4'}, {'key': 'pandas', 'package': 'pandas', 'version': '0.24.2'}, {'key': 'matplotlib', 'package': 'matplotlib', 'version': '3.1.0'}, ...]
这就是使用get_pretty_env_info()函数获取Python环境信息的 实践。您可以对其进行修改和定制,以满足您的特定需求。
