Pomimo że Python dużo częściej wykorzystywany jest w środowiskach UNIX’owcy/Linux’owych to znajdzie się kilka fajnych zastosowań dla tego języka na Windowsie. Możliwości na instalację jest kilka, a najprostsza to wykorzystanie instalatora ActiveState. Wersja ta ma w sobie wszystko co potrzebne:

  • rozszerzenia dla API Windows
  • menadżera pakietów PyPM
  • dokumentację

Niestety jakiś czas temu zmieniły się zasady licencjonowania w ActiveState i aktualne wersje dla zastosowań produkcyjnych wymagają zakupu licencji (1000$/rok - aż chce się zacytować z Dnia Świra: czizys k…wa…). Wiem jak lepiej wydać taką kasę więc spróbuję uzyskać podobną funkcjonalność na tym co można pobrać za darmo z sieci.

  • Instalatory Python’a dla Windows można znaleźć tutaj: http://www.python.org/download/releases/

  • Teraz pakiety z obsługą API Windows (wybieramy stosownie do wcześniej pobranej wersji Pythona): http://sourceforge.net/projects/pywin32/files/pywin32/

  • I na koniec setuptools by móc doinstalować dodatkowe moduły. Wybieramy interesującą nas wersję tutaj: https://pypi.python.org/pypi/setuptools/

  • Obecnie jest to 1.1.6 - zgodnie z opisem z tej strony: https://pypi.python.org/pypi/setuptools/1.1.6#windows pobieramy ez_setup.py i uruchamiamy.

  • Na koniec odpalamy CLI i instalujemy inne przydatne nam paczki, np.:

    easy_install couchdb
    easy_install cx-oracle
    
    • P.S. I tutaj mały kruczek - instalacja cx-Oracle z pomocą easy_install uda się tylko na 32-bitowych Windowsach, na 64-bitowych konieczne jest zainstalowanie Visual Studio Express by możliwe było skompilowanie paczek… (tak mnie też się w tej chwili już odechciewało…)
      Ale na szczęście w przypadku tej paczki da się inaczej, wystarczy pobrać już skompilowaną paczkę ze strony: http://cx-oracle.sourceforge.net dopasowaną do wybranej wcześniej wersji Pythona.
    • P.S. 2. Można się obyć bez tej paczki i wykorzystać pyodbc razem z kontrolerem ODBC z klienta Oracle, ale pyodbc nie obsługuje wywołań procedur ze zmiennymi wiązanymi in/out lub out - a ja akurat tego potrzebowałem, jeśli to nie twój problem to pyodbc będzie prostsze 😄