U ifRN @ s d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm Z m Z d dlmZm Z d dlmZ d dlmZ d dlmZ dd Zd d Zddd ddZdd Zdd ZdddZdddddZG dd deZdS ) N)DistutilsExecErrorDistutilsPlatformErrorCompileErrorLibError LinkError) CCompilergen_lib_options)log)get_platform)countc C s zt jt jdt jt jB d} W n tk r> td Y dS X d}d }| t D ]}zt | |\}}}W n tk r Y qY nX |rT|t j krTtj |rTztt|}W n ttfk r Y qTY nX |dkrT||krT|| }}qTW 5 Q R X ||fS )Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredNNr )winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeError)keybest_versionbest_dirivZvc_dirZvtversion r