python标准库 sysconfig模块
# -*- 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模块的更多相关文章
- [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模块
---------------------------------------------------------------------------------------------------- ...
随机推荐
- jQuery限制文本框只能输入正整数
//限制键盘只能按数字键.小键盘数字键.退格键 $("#txtQty").keydown(function (e) { var code = parseInt(e.keyCode) ...
- C-二维数组,多维数组
-----二维数组 ->在数组定义当中,行数和列数需要用常量定义 ->在定义的时候如果没有数值进行填充,则补零 ->第一个数是行,第二个数是列 ...
- Qt Label show Images
第一.我们需要让QLabel的大小不因为图片的大小变化而变化,可以用下面语句实现 ui->imageLabel->setSizePolicy(QSizePolicy::Ignored, Q ...
- CSS3 之 box-shadow
1. css3 box-shadow CSS3的box-shadow属性可以让我们轻松实现图层阴影效果 box-shadow: inset(可选 默认没有) x-offset y-offset ...
- JavaScript 函数基础
1. JavaScript 函数基础 1. 定义方法 2. 函数的调用方法 3. 函数方法 apply : 将函数作为数组的方法来调用 将参数以数组形式传递给该方法 call : 将函数作为对象的 ...
- AngularJs练习Demo12Provider
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- 诡异的SpriteKit 游戏查错
在Endless Runner 游戏中,做了一些atlas后,发现有个问题,当player跳跃起来的时候,发现他没有动画了,被默认的X图片代替.原来的图像是这样的. 在增加了一些动画后,我的效果就成这 ...
- oracle学习笔记(一)用户管理
--oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...
- 委托,匿名方法,Lambda,泛型委托,表达式树
一.委托:完成一个委托应分三个步骤://step01:首先用delegate定义一个委托;public delegate int CalculatorAdd(int x, int y);//step0 ...
- UITableView 属性集合
UITableView-------表视图--继承UIScrollView并遵守NSCoding协议 属性 frame-------------设置控件的位置和大小 backgroundColor-- ...