Search on blog:

Python: Dlaczego Python nie może zaimportować modułu po instalacji z pip

Czasami po instalacji

pip install some_module

Python nie może odnaleźć modułu i pokazuje błąd ModuleNotFoundError

import some_module

ModuleNotFoundError: No module named 'some_module'

Niezbyt często powodem jest, że moduł używa innej nazwy do istalacji a innej do importu. To może być całkowicie inna nazwa - jak instalacja python-some_module i import some_module - lub tylko różnica wielkości znaków - jak instalacja some_module i import SomeModule.

Ale często problem powstaje gdy ma się zainstalowane wiele wersji Python (co jest popularne pod Linux) i wtedy pip może instalować moduł dla inneh version niż wersja uruchamiana komendą python

Każda wersja Pythona ma swój własny folder z modułami ponieważ on potrzebować modułu skompilowanego specjalnie dla tej wersji.

Najpierw można sprawdzić wersje obu komend (używając duże V)

pip -V

python -V

Można także sprawdzić czy nie ma podobnych komend

pip3 -V

pip3.7 -V
pip3.8 -V
pip3.9 -V

python3 -V

python3.7 -V
python3.8 -V
python3.9 -V

Wszystkie te nazwy z liczbami pozwalają na uruchomienie kodu z konkretnie wybraną wersją. Jest to szczególnie przydatne gdy nowa wersja Pythona jest bardzo świeża i wciąż nie madziałającego potrzebnego modułu.

I wtedy można użyć pip3.9 aby mieć pewność, że moduł będzie zainstalowany dla komendy python3.9.

Ale czasami najłatwiejszą metodą jest użycie bezpośredion python do uruchomienia modułu pip i instalacji potrzebnego modułu dla poprawnego python.

python -m pip install some_module

to zawsze będziejest zawsze pip, nie pip3, pip3.7 etc.

python3   -m pip install some_module

python3.7 -m pip install some_module
python3.8 -m pip install some_module
python3.9 -m pip install some_module

Później można spróbować wyczyścić ten bałaga i wstawić poprawy pip3.x w miejsce pip.

Na Linux (i prawdobodobnie na MacOS też) można odszukać folder z pip używając

which pip

which pip3

ewentualnie

whereis pip

whereis pip3

Wszystkie wersje powinny być w tym samym folderze (np.. /usr/local/bin). Wystarczy przejść do folderu z pip i pip3.x, usunąć pip i stworzyć symboliczny link do innej wersji

ln -s pip3.9 pip

# or

ln -s pip3.9 pip3

zamiast kopiować plik.

W ten sam sposób można postąpić z python3.9 i python3.

Jeśli wciąz używasz Python 2 (albo system go używa) i komenda python uruchamia Python 2 wtedy lepiej nie wstawiać python3 w miejsce python

Python: How can't Python import module after installation with pip

Sometime after installation

pip install some_module

Python can't find this module and shows error ModuleNotFoundError

import some_module

ModuleNotFoundError: No module named 'some_module'

Not so often problem is that module uses different name for installation and different for import. It can be totally different name - like install python-some_module and import some_module …

« Page: 1 / 1 »