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

sysconfig模块,布布扣,bubuko.com

时间: 2024-11-08 02:59:32

sysconfig模块的相关文章

[转]Python打包工具

作者:Tarek Ziadé,翻译:张吉 原文:http://www.aosabook.org/en/packaging.html 转载地址:http://www.ituring.com.cn/article/19090 14.1 简介 对于如何安装软件,目前有两种思想流派.第一种是说软件应该自给自足,不依赖于其它任何部件,这点在Windows和Mac OS X系统中很流行.这种方式简化了软件的管理:每个软件都有自己独立的“领域”,安装和卸载它们不会对操作系统产生影响.如果软件依赖一项不常见的类

openSUSE下配置Apache开启重写模块

这几天刚重装了系统,需要进行一大堆配置,笔者是一名LAMPer,当然要配置apache+php+mysql了,我用的发行版是opensuse13.1,. 安装好apache后,需要开启URL重写功能以配合项目的开发.打开apache的配置文件/etc/apache2/httpd.conf,找到AllowOverride None,改成AllowOverride ALL,再找到Option None改为Option FollowSymLinks .这样还不行,还要加载Rewrite模块. Rewr

Python 3.x标准模块库目录

出处:http://blog.csdn.net/sadfishsc/article/details/10390065 文本 1. string:通用字符串操作 2. re:正则表达式操作 3. difflib:差异计算工具 4. textwrap:文本填充 5. unicodedata:Unicode字符数据库 6. stringprep:互联网字符串准备工具 7. readline:GNU按行读取接口 8. rlcompleter:GNU按行读取的实现函数 二进制数据 9. struct:将字

马哥教育第十三天系统启动流程、grub、模块、bash函数

kernel的功能:进程管理.文件系统.硬件驱动.内存管理.安全功能:SELinux.网络子系统,标准库:glibc 进程是运行在cpu上但用户进程受控于内核,用户进程需要完成特权指令时将触发软中断由用户模式转为内核模式,由内核代为执行特权指令并把结果返回给用户进程. Linux为单内核体系结构但是它支持模块化,模块还可以动态装载或卸载,Linux内核:核心 + 外围模块 核心:/boot/vmlinux-VERSION-release 模块:/lib/modules/VERSION-relea

iptables之ip_conntrack模块

 ip_conntrack模块: 1,基本概念: -允许的最大跟踪连接条目:CONNTRACK_MAX-存储跟踪连接条目列表的哈西表的大小:HASHSIZE-每个哈西表的条目(叫一个bucket),包含了一个链接起来的跟踪连接条目-哈希表大小HASHSIZE,表现为 条目bucket的多少,在iptables启动时在日志中会显示. kernel 用 ip_conntrack 模块来记录 iptables 网络包的状态,并把每条记录保存到 table 里(这个 table 在内存里,可以通过/pr

redis模块

Redis模块 一.Redis简介 Redis属于键值数据库,支持数据持久化,能够让数据从内存中保存在磁盘里,即使重启服务器数据也依然存在:同时也支持更多 value 类型,除了 string 外,还支持 hash.lists(链表).sets(集合)和 sorted sets(有序集合)几种数据类型. redis 使用了两种文件格式: (1)全量数据(RDB):是把内存中的数据写入磁盘,便于下次读取文件进行加载. (2)增量请求(AOF):是把内存中的数据序列化为操作请求,用于读取文件进行re

Python 基础 - Day 5 Learning Note - 模块 之 介绍篇

定义 模块(module)支持从逻辑上组织Python代码,本质就是.py结尾的python文件(e.g.文件名:test.py; 模块名:test),目的是实现某项功能.将其他模块属性附加到你的模块中的操作叫导入(import). 模块分为三类:标准库.开源模块(open source module)和自定义模块. 包(package)是一个有层次的文件目录结构, 定义了一个由模块和子包组成的python应用程序执行环境.和模块及类一样,也使用句点属性标识来访问他们的元素.使用标准的impor

linux命令:系统裁剪之二 insmod装载模块

Linux系统裁剪笔记之二 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是

CentOS 6系统的 lamp (编译安装,模块或php-fpm)详解

   LAMP 是指一组通常一起使用来运行动态网站或者服务器的 自由软件 名称首字母缩写: 1.Linux:操作系统: 2.Apache:网页服务器: 3. MariaDB或MySQL,数据库管理系统(或者数据库服务器): 4.PHP.Perl或Python,脚本语言:  实验要求: (1) 三者分离于两台或三台主机: (2) 一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress: (3) xcache (4) 尝试mpm为非prefork机制:    IP   系