# -*- 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标准库 sysconfig模块的更多相关文章

  1. [python标准库]Pickle模块

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

  2. Python 标准库 ConfigParser 模块 的使用

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

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

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

  4. [python标准库]XML模块

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

  5. 【python】Python标准库defaultdict模块

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

  6. Python标准库--os模块

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

  7. python标准库 bisect模块

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

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

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

  9. Python——标准库 Sys模块

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

随机推荐

  1. Map的内容按字母顺序排序

    map有自带的排序功能,但需要重写排序方法,代码如下: package coreJava.com.shindo.corejava.map; import java.util.ArrayList; im ...

  2. python应用之文件属性浏览

    import time,os def showFilePROPERTIES(path): for root,dirs,files in os.walk(path,True): print('位置:' ...

  3. C#调用Java代码

    c#直接调用java代码,需要ikvmbin-0.44.0.5.zip.下载地址: http://pan.baidu.com/share/link?shareid=3996679697&uk= ...

  4. CSS基础知识笔记(一)

    css 样式由选择符和声明组成,而声明又由属性和值组成: 选择符: 又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响. 声 ...

  5. DataTable复制自身行

    在我们工作的过程中有可能要使用DataTable产生一些重复数据(在不重复读取数据库的情况下) 无废话,直接上代码 DataTable复制自身一行(目的产生重复数据),已测试通过可直接复制 /// & ...

  6. .NET踩坑记录【不断更新】

    NET 4.0 Tasks 使用 ThreadPool 可设置最大并发级别. 多个WebClient多线程下载受System.Net.ServicePointManager.DefaultConnec ...

  7. jQuery输入框提示自动完成插件 autocomplete

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. 兼容性之IOS下label 无法点击

    今天做移动端的页面时碰到一个稀奇的问题,那就是点击label无法选中与之相关的checkbox,下面是问题代码: <li class="list-item clearfix notif ...

  9. git merge –squash介绍

    Git相对于CVS和SVN的一大好处就是merge非常方便,只要指出branch的名字就好了,如: $ git merge another $ git checkout another # modif ...

  10. WordPress插件制作教程(七): 插件函数之过滤器(Filter)函数

    上一篇对插件函数之动作(Action)函数做了下介绍,这篇在介绍下过滤器(Filters). 过滤器是一类函数,WordPress执行传递和处理数据的过程中,在针对这些数据做出某些动作之前的特定运行( ...