# -*- 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. 给那些因为Firebug而舍不得FireFox的朋友

    Google Chrome浏览器调试 作为Web开发人员,我为什么喜欢Google Chrome浏览器 [原文地址:http://www.cnblogs.com/QLeelulu/archive/20 ...

  2. 1042. Shuffling Machine (20) - sstream实现数字转字符串

    题目例如以下: Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffli ...

  3. 伸缩放大的js

    window.onload = function() {         var div1 = document.getElementById('div1');         div1.onmous ...

  4. compass模块

    Compass核心模块Reset :重置CSS模块 @import "compass/reset" Layout :页面布局的控制能力 @import "compass/ ...

  5. CentOS 6.5 伪分布式 安装 hadoop 2.6.0

    安装 jdk -openjdk* 检查安装:java -version 创建Hadoop用户,设置Hadoop用户使之可以免密码ssh到localhost su - hadoop ssh-keygen ...

  6. Tomcat 7.0 进入项目管理页面时的密码问题

    tomcat7 这个版本,官方网下载的原始包项目管理页面的权限和之前版本的配置有点区别. 到Tomcat的conf文件夹下找到tomcat-users.xml文件,有配置权限的配置文件.     ma ...

  7. mysql配置文件my.cnf解析转载

    basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录. datadir = path 从给定目录读取数据库文件 ...

  8. linux shell脚本连接oracle查询数据插入文件和日志文件中

    #!/bin/sh sqlplus "用户名/密码@数据库"<<EOF  或者只有一个库的 :sqlplus "用户名/密码"<<EOF ...

  9. 三个重要的游标sp_cursoropen

    請問這三個存諸過程的作用是什么﹖ sp_cursoropen, sp_cursorfetch, sp_cursorclose API 服务器游标实现  SQL Server OLE DB 提供程序. ...

  10. 使用canvas来实时播放RTSP视频

    HTML5的标签可以用使用下来面的方式来播放静态视频 <video width="320" height="240" controls="con ...