3 \- @ s d dl Z d dlZd dlZd dlZe jdkrBdd Zdd Zdd Ze jd krlejd krld dl m Z dd Zne jd kr d dlZd dl Z d d Zejdkrdd Zndd Zejjd%rdd Zdd Zn6ejdkrdd Zd&ddZndd Zdd Zd!d Zd"d# Zed$kre dS )' Nntc C s d} t jj| }|dkrdS |t| }t j|d jdd\}}t|dd d }|dkrf|d7 }t|dd d }|dkrd }|dkr|| S dS ) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v. N g $@r )sysversionfindlensplitint)prefixisrestZmajorVersionZminorVersion r #/usr/lib64/python3.6/ctypes/util.py_get_build_version s r c C s^ t } | dkrdS | dkr d}n| dkr6d| d }ndS ddl}d|jjkrV|d 7 }|d S )z%Return the name of the VC runtime dllNr msvcrtr zmsvcr%d r z_d.pyddz.dll)r importlib.machinery machineryEXTENSION_SUFFIXES)r Zclibname importlibr r r find_msvcrt" s r c C st | dkrt S x`tjd jtjD ]J}tjj|| }tjj|rD|S |j j drTq"|d }tjj|r"|S q"W d S )NcmPATHz.dll)r r! ) r osenvironr pathseppathjoinisfilelowerendswith)nameZ directoryZfnamer r r find_library7 s r, posixdarwin) dyld_findc C sL d| d| d| | f g}x,|D ]$} yt | S tk rB w Y q X q W d S )Nzlib%s.dylibz%s.dylibz%s.framework/%s) _dyld_find ValueError)r+ possibler r r r, H s c ! C s t jdtj| }tjd}|s,tjd}|s4d S tj }z||dd|jd| g}t t j }d|d<