È necessario ottenere la piattaforma su cui si sta eseguendo e la versione di python su cui si sta eseguendo e quindi assemblare il nome da soli.
Per ottenere la piattaforma corrente, utilizzare sysconfig.get_platform()
. Per ottenere la versione Python, utilizzare sys.version_info
(in particolare i primi tre elementi della tupla restituita). Sul mio sistema (64-bit linux con Python 2.7.2) ottengo:
>>> import sysconfig
>>> import sys
>>> sysconfig.get_platform()
linux-x86_64
>>> sys.version_info[:3]
(2, 7, 2)
Il formato della directory lib è "lib.platform-versionmajor.versionminor" (cioè solo 2.7, non 2.7.2) . È possibile costruire questa stringa utilizzando metodi di formattazione stringa di pitone:
def distutils_dir_name(dname):
"""Returns the name of a distutils build directory"""
f = "{dirname}.{platform}-{version[0]}.{version[1]}"
return f.format(dirname=dname,
platform=sysconfig.get_platform(),
version=sys.version_info)
È possibile utilizzare questo per generare il nome di una qualsiasi delle Distutils directory di compilazione:
>>> import os
>>> os.path.join('build', distutils_dir_name('lib'))
build/lib.linux-x86_64-2.7
L'ho voluto anche in alcune occasioni, ma non sono mai stato abbastanza motivato per cercare una risposta ... – mgilson