python标准库模块设置_python标准库 sysconfig模块

本文详细介绍了Python标准库中的sysconfig模块,主要用于获取解释器的编译配置信息。内容包括sysconfig的作用、功能、版本历史,以及如何使用sysconfig获取安装前缀、版本信息、基目录、编译器和链接器标志等配置设置。此外,还展示了如何获取不同平台的路径名和特定方案下的路径。最后,提到了sysconfig在不同Python版本和平台下的应用。
部署运行你感兴趣的模型镜像

# -*- coding: utf-8 -*-

# python:2.x

__author__ = 'Administrator'

import sysconfig

#sysconfig:解释器编译时配置

#作用:访问用于构建python配置设置

#版本:2.7及之后

#其他:在2.7中,sysconfig已经从distutils抽取出来,成为独立模块,包括一些函数来确定用来编译和安装当前解释器设置

config_values = sysconfig.get_config_vars()

print 'Found %d configuration settings' % len(config_values.keys())

print

print 'Some highlights:'

print

print ' Installation prefixes:'

print ' prefix={prefix}'.format(**config_values)

print ' exec_prefix={exec_prefix}'.format(**config_values)

print

print ' Version info:'

print ' py_version={py_version}'.format(**config_values)

print ' py_version_short={py_version_short}'.format(**config_values)

print ' py_version_nodot={py_version_nodot}'.format(**config_values)

print

print ' Base directories:'

print ' base={base}'.format(**config_values)

print ' platbase={platbase}'.format(**config_values)

print ' userbase={userbase}'.format(**config_values)

print ' srcdir={srcdir}'.format(**config_values)

print

print ' Compiler and linker flags:'

#print ' LDFLAGS={LDFLAGS}'.format(**config_values)

#print ' BASECFLAGS={BASECFLAGS}'.format(**config_values)

#print ' Py_ENABLE_SHARED={Py_ENABLE_SHARED}'.format(**config_values)

#打#这表示在win下面运行报错KeyError错误,可能不支持win系统

#get_config_vars()传递变量名,返回值是一个list

bases=sysconfig.get_config_vars('base','platbase','userbase')

print 'base'

for i in bases:

print ' ',i

#只需要一个配置时,可以使用get_config_vars()来获取

print 'user base:',sysconfig.get_config_vars('userbase')

print 'unknown variable:',sysconfig.get_config_vars('NoSuchVariable')

#如果变量没有找到,get_config_vars()会返回一个None,而不是异常

#安装路径:scheme方案

for name in sysconfig.get_scheme_names():

print name

#方法是一组平台特定默认目录,根据平台打包标准和原则来组织,安装到一个站点范围位置或者用户所有的一个私有目录,分别有不同的方法:get_scheme_names()方法完整方案集

#这边没有当前方案概念,默认方案取决于平台,使用具体的方案依赖于安装程序提供选项,如果当前系统在运行一个遵循posix操作系统,则默认方法为posix_prefix,否则os.name定义,黑底为操作系统名

#每个方案定义了一组用于安装包路,要得到路径名列表,可以使用get_path_names()

print

for name1 in sysconfig.get_path_names():

print name1

# syscofig中使路径名

"""

stdlib 标准Python库文件,而不是特定于平台的

platstdlib 标准Python库文件,特定于平台的

platlib特定场地、特定于平台的文件

purelib特定场地,non-platform-specific文件

include头文件,而不是特定于平台的

platinclude头文件,特定于平台的

scripts执行脚本文件

data数据文件

"""

#使用get_paths()可以获取与一个方案关联的具体目录

import pprint,os

for scheme in ['posix_prefix','posix_user']:

print scheme

print '='*len(scheme)

paths=sysconfig.get_paths(scheme=scheme)

prefix=os.path.commonprefix(paths.values())

print 'prefix=%s\n'%prefix

for name,path in sorted(paths.items()):

print '%s\n .%s'%(name,path[len(prefix):])

print

print

#要得到单个路径,可以调用get_path()

for scheme in ['posix_prefix','posix_user']:

print scheme

print '='*len(scheme)

print ' purelib=',sysconfig.get_path(name='purelib',scheme=scheme)

print

#python版本和平台

#想准确获取平台信息,使用get_platform()

print sysconfig.get_platform()

#还可以使用get_python_version()由sys.version_info得到解释器版本

import sys

print 'sysconfig.get_python_version() =>', sysconfig.get_python_version()

print 'sys.version_info =>', sys.version_info

print 'major',sys.version_info.major

print sys.version_info.minor

print sys.version_info.releaselevel

print sys.version_info.serial

#get_python_version()返回一个串,构建版本特定的路径时很适用

#官方文档:https://docs.python.org/2.7/library/sysconfig.html?highlight=sysconfig#sysconfig

#其他:distutils在2.7之前sysconfig是distutils一部分

#distutils2()1:https://wiki.python.org/moin/Distutils2 and http://hg.python.org/distutils2

#其他类型 sys,os,site

[python标准库]Pickle模块

Pickle-------python对象序列化 本文主要阐述以下几点: 1.pickle模块简介 2.pickle模块提供的方法 3.注意事项 4.实例解析 1.pickle模块简介 The pic ...

Python 标准库 ConfigParser 模块 的使用

Python 标准库 ConfigParser 模块 的使用 demo #!/usr/bin/env python # coding=utf-8 import ConfigParser import ...

Python标准库——collections模块的Counter类

1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...

[python标准库]XML模块

1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...

【python】Python标准库defaultdict模块

来源:http://www.ynpxrz.com/n1031711c2023.aspx Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会 ...

Python标准库--os模块

这个模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行.一个例 ...

python标准库 bisect模块

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #bisect #作用:维护有序列表,而不必在每次向列表增加一个元素 ...

Python标准库 -- UUID模块(生成唯一标识)

UUID是什么: UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的UUID它可以保证在空间和时间上的唯一性,也称为GUID,全称为: UUID ...

Python——标准库 Sys模块

---------------------------------------------------------------------------------------------------- ...

随机推荐

Know How And When To Use System.Message_Level To Control Messages In Oracle Forms

SYSTEM.MESSAGE_LEVEL is used to control the messages that end users see when they use the Oracle For ...

Selenium之偷懒教程

进来一直停留在基础理论知识的学习中,认为太乏味,就写了一个网页自己主动化的demo:自己主动写日报.省的以后自己打开网页写啦. 直接上代码: 自己主动填写日报DEMO import java.io.B ...

采用CSS3 Media Query技术适应Android平板屏幕分辨率和屏幕像素密度

采用HTML5在开发移动应用程序满足各种需求Android分辨率和屏幕的平板设备密度,这是非常麻烦的过程,最终的解决方案是使用css media query,匹配相同的时间分辨率和屏幕像素密度.上进行 ...

ajax写法

$.ajax({ type:'post', url:'/login', cache:false, dataType:'json', success:function(da ...

算法题丨4Sum

描述 Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = ...

ADO.NET学习笔记(1)

ADO.Net是.Net框架中为数据库的访问而封装的一个库.通过这个库我们可以简单便捷的访问数据库,并对数据库进行一些增删改查的操作,目前ADO.Net支持四种主流的数据库,分别是SQL.OLE DB ...

【Graphite】使用dropwizard.metrics向Graphite中写入指标项数据

graphite 定时向Graphite中写入指标项数据,指标项模拟个数3000个 使用的类库 官方文档   dropwizard的github地址 Metric官方文档 metrics.dropwi ...

sudo和su的区别

su 命令 su su命令的主要作用是让你可以在已登录的会话中切换到另外一个用户.换句话说,这个工具可以让你在不登出当前用户的情况下登录为另外一个用户. su命令经常被用于切换到超级用户或 root ...

EF5+MVC4系列(2) EF5报错 无法确定“XXX”关系的主体端。添加的多个实体可能主键相同

情景:用户表和订单表是一对多的关系,即 一个 Userinfo  对应对应有 多个 Order表   如果我在EF中,先创建一个用户,然后创建3个订单,然后关联这1个用户和3个订单的关系,毫无问题. ...

llinux 安装oracle

5.传输oracle的客户端(600几M linux.x64_11gR2_client).oracle的依赖包(20几M packages),linux只支持zip(rar较困难不做解释) 6.打开l ...

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值