2012-03-01 17 views
13

La salida producida al ejecutar perl -V está repleta de información útil (ver ejemplo a continuación). ¿Hay algo así para Python? salida¿Cuál es el equivalente de Python de "perl -V"


Ejemplo:

% perl -V 
Summary of my perl5 (revision 5 version 10 subversion 1) configuration: 

    Platform: 
    osname=linux, osvers=2.6.32-5-amd64, archname=x86_64-linux-gnu-thread-multi 
    uname='linux brahms 2.6.32-5-amd64 #1 smp tue jun 14 09:42:28 utc 2011 x86_64 gnulinux ' 
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.1 -Dsitearch=/usr/local/lib/perl/5.10.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.10.1 -Dd_dosuid -des' 
    hint=recommended, useposix=true, d_sigaction=define 
    useithreads=define, usemultiplicity=define 
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef 
    use64bitint=define, use64bitall=define, uselongdouble=undef 
    usemymalloc=n, bincompat5005=undef 
    Compiler: 
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', 
    optimize='-O2 -g', 
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' 
    ccversion='', gccversion='4.4.5', gccosandvers='' 
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 
    alignbytes=8, prototype=define 
    Linker and Libraries: 
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib' 
    libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt 
    perllibs=-ldl -lm -lpthread -lc -lcrypt 
    libc=/lib/libc-2.11.2.so, so=so, useshrplib=true, libperl=libperl.so.5.10.1 
    gnulibc_version='2.11.2' 
    Dynamic Linking: 
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' 
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector' 


Characteristics of this binary (from libperl): 
    Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV 
         PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL 
         USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES 
         USE_PERLIO USE_REENTRANT_API 
    Locally applied patches: 
    DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts 
    DEBPKG:debian/cpan_config_path - Set location of CPAN::Config to /etc/perl as /usr may not be writable. 

    <snip-- iow patches galore --you get the picture> 

    DEBPKG:fixes/safe-reval-rdo-cve-2010-1447 - [PATCH] Wrap by default coderefs returned by rdo and reval 
    DEBPKG:patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.10.1-17squeeze2 in patchlevel.h 
    Built under linux 
    Compiled at Jun 30 2011 22:28:00 
    @INC: 
    /etc/perl 
    /usr/local/lib/perl/5.10.1 
    /usr/local/share/perl/5.10.1 
    /usr/lib/perl5 
    /usr/share/perl5 
    /usr/lib/perl/5.10 
    /usr/share/perl/5.10 
    /usr/local/lib/site_perl 
    /usr/local/lib/perl/5.10.0 
    /usr/local/share/perl/5.10.0 
    . 

No debe confundirse con la mucho menos informativo perl -v:

% perl -v 
This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi 
(with 53 registered patches, see perl -V for more detail) 

Copyright 1987-2009, Larry Wall 

Perl may be copied only under the terms of either the Artistic License or the 
GNU General Public License, which may be found in the Perl 5 source kit. 

Complete documentation for Perl, including FAQ lists, should be found on 
this system using "man perl" or "perldoc perl". If you have access to the 
Internet, point your browser at http://www.perl.org/, the Perl Home Page. 

Respuesta

15
python -c 'import sysconfig, pprint; pprint.pprint(sysconfig.get_config_vars())' 
+0

Jaja, totalmente poseía mi respuesta. – enderskill

+2

Como un aparte, perl también tiene una interfaz de módulo para los datos 'perl -V': el [módulo de configuración] (http://perldoc.perl.org/Config.html). – rjh

0

Aunque esto es increíblemente hacker, poco práctico, y no tan detallada como perl -V, este es un trazador de líneas que puede obtener información decente sobre el medio ambiente.

python -c "import platform as p;exec('for x in vars(p):\n try:\n print ({x:vars(p)[x]()})\n except:\n pass')" 

Dado que este no es el típico fácil de recordar comandos, usted podría ahorrar esta línea al directorio de Python Lib como sys_info.py y entonces se podría simplemente ejecutar:

python -m sys_info 
Cuestiones relacionadas