# -*- 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. HTML5新增的一些属性和功能之八——web Worker

    Web Workers 为什么用web workers? 浏览器的原理中决定了页面打开只有一个主线程--UI渲染线程,如果线程中有耗时的程序(js)会阻塞线程,使得页面中其他的UI无法渲染,我们一般把 ...

  2. [Javascript] Call Stack

    Every time when a function run it will be push into the call stack and put on the top,  you can thin ...

  3. World Wind Java开发之十五——载入三维模型

    之前的一篇博客是关于载入粗三维模型的,见http://blog.csdn.net/giser_whu/article/details/43452703,这个地方还存在着不能载入纹理的问题,一直没呢解决 ...

  4. Android 打造形形色色的进度条 实现可以如此简单

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43371299 ,本文出自:[张鸿洋的博客] 1.概述 最近需要用进度条,秉着不重 ...

  5. CentOS6.6(单用户模式)重设root密码

    1.开机时手要快按任意键,因为默认时间5s 2.grub菜单,只有一个内核,没什么好上下选的,按e键.不过如果你升级了系统或安装了Xen虚拟化后,就会有多个显示了. 3.接下来显示如下,选择第二项,按 ...

  6. 编译U-boot时,make[1]: *** 没有规则可以创建mkimage.o”

    执行完make smdk2440_config 对Uboot重行编译怎么会出现这样的错误 make[1]: Entering directory `/home/win/S3-ARM/Part4/ubo ...

  7. SuperSocket学习笔记(一)

    这是根据我自己学习的经历整理出来的,如有不对之处,还请多多指教! SuperSocket源码下载 SuperSocket文档 安装并启动Telnet 学习方法: QuickStrart + 文档 参考 ...

  8. asp.net获取ip地址的方法

    在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的I ...

  9. (转) Resource file and Source file

    基本上是这样的,Sourcefile文件夹里面放的是CPP文件这些,Resourcefile文件夹是资源文件夹,里面可以放你程序里需要的资源,包括图标,对话框,图片等等:对应的文件如下: Source ...

  10. POJ2239 二分图最大匹配

    问题:POJ2239 分析: 本题给出每门课程的上课时间,求最大选课数,可以转化为二分图最大匹配问题求解. 设集合A为课程集,集合B为上课时间集,根据输入建立二分图.最大选课书就是该二分图的最大匹配数 ...