2020.03.23

Python modulok telepítése Windows rendszeren

Python modulok telepítésére a legáltalánosabb módszer a "pip" használata:

pip install modulnév

Azonban belefuthatunk abba, hogy különböző hibaüzeneteket dobál nekünk, ahelyett, hogy gondolkozás nélkül lefutna a parancs:

NameError: name 'pip' is not defined
SyntaxError: invalid syntax

Ennek megoldása, hogy a pip parancsot másként futtatjuk, a python-nak paraméterként átadva.

python -m pip install modulnév

Ekkor még mindig belefuthatunk abba, hogy látszólag sokáig nem történik semmi, majd dob egy időtúllépés (timeout) hibát. Ilyenkor csak annyi történik, hogy az Internetről nem képes időben (vagy egyáltalán) letölteni az adott modult. Ez jellemzően akkor fordul elő, ha proxy mögött vagyunk. A python nem veszi át önmagától a rendszer proxybeállításait, legegyszerűbb tehát rendszerváltozóként hozzáadni két változót.

http_proxy=http://proxy:port
https_proxy=https://proxy:port

Fontos megjegyezni, hogy - sok egyéb Linux alapú rendszerhez hasonlóan - nem képes NTLM titkosítást használó proxy-t kezelni, így ha ilyen proxy mögött ülünk, akkor közbe kell iktatni egy saját proxy-t, ami a sima kéréseket átkódolja. Ehhez létezik python alapú megoldás is, de én a CNTLM használatát javaslom, aminek a beállításaihoz a minta konfigurációs fájl nyújt segítséget.

Elvileg lehet kézzel is telepíteni modulokat a megfelelő helyre másolással, azonban ott több dologra is oda kell figyelni, ami nem mindig egyszerű. Többek között nem mindegy, hogy a modul 32, vagy 64 bites, hiszen a python környezetnek ehhez is alkalmazkodnia kell. S még ha látszólag sikerült is a megfelelő fájlokat a megfelelő helyre telepíteni, előfordulhat, hogy az import parancs kiadása után (bár hiba nélkül lefut), a modul mégse töltődik be! Emiatt én inkább a fent taglalt pip parancs használatát javaslom, a fent leírt apró trükk alkalmazásával.