środa, 3 grudnia 2014

Python: błąd "unable to find vcvarsall.bat" przy instalacji modułu

Python jest pięknym językiem, a dzięki narzędziom takim jak IDLE czy PIP korzystanie z niego jest bardzo proste. Niestety to drugie potrafi nastręczać problemów. Do realizacji jednego z pomysłów potrzebuję MoviePy. Niestety przy próbie instalacji dostawałem w kółko błąd:

unable to find vcvarsall.bat

Geneza

Python przy instalacji modułu przygotowuje binarki (jeśli ma taki kaprys). Fajnie z jego strony, ale aby tego dokonać potrzebuje kompilatora. Niestety nie umie sobie poradzić ze znalezieniem byle jakiego, więc szuka 'swojego'. Znaczy się szuka kompilatora, którego użyto do zbudowania samego Pythona. W przypadku mojego Pythona 3.4.1 był to Visual Studio 2010.

Rozwiązanie problemu

Jak się łatwo domyślić możliwości zawsze jest kilka. Najprościej jest po prostu zainstalować Visual Studio 2010 Express. Tylko, że ja ciągle pracuję w Visual Studio i nie potrzebuję instalować starszej wersji niż moja. Dlatego ja skorzystałem z innej opcji. Przy instalacji, kompilator jest znajdowany dzięki zmiennej środowiskowej wskazującej lokalizację narzędzi Visual Studio. W nazwie tejże, zawarta jest wersja VS. Tu już nie dziwię się twórcom Pythona. Faktycznie głupio sprawdzać wszystkie zmienne środowiskowe podobne, lepiej założyć istnienie konkretnej. Skoro więc nie udało mu się znaleźć konkretnej zmiennej,  trzeba mu ją dostarczyć. Wystarczy przed instalacją modułu wywołać:
SET VS100COMNTOOLS=%VS120COMNTOOLS%
Należy pamiętać w jaką wersję VS jest się wyposażonym. Jeśli nie wiemy z jakiej wersji VS skorzystali twórcy Pythona przy budowaniu, wystarczy ustawić zmienne środowiskowe dla wszystkich wersji wcześniejszych.
SET VS90COMNTOOLS=%VS120COMNTOOLS%
SET VS100COMNTOOLS=%VS120COMNTOOLS%
SET VS110COMNTOOLS=%VS120COMNTOOLS%
Python sam już sobie wybierze, która ze zmiennych go interesuje, a całość następnym razem przebiegnie bez zbędnych komplikacji.

Brak komentarzy:

Prześlij komentarz