Po zainstalowaniu mechanize nie mogę go zaimportować.
Próbowałem zainstalować z pip, easy_install i za pośrednictwem python setup.py install
tego repozytorium: https://github.com/abielr/mechanize . Wszystko to bezskutecznie, ponieważ za każdym razem, gdy wchodzę na mój interaktywny Python, otrzymuję:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
Instalacje, które uruchomiłem wcześniej, informowały, że zakończyły się pomyślnie, więc oczekuję, że import zadziała. Co może być przyczyną tego błędu?
easy_install
? Ponadto proszę potwierdzić pełną ścieżkęeasy_install
,pip
i odpython
.sys.path
czy szukasz odpowiednich miejsc,ls -laR /usr/local/lib/python2.7/dist-packages/mech*
sprawdzić problemy z uprawnieniami iimp.find_module("mechanize")
rozróżnić błędy nie do znalezienia i nie do przetrwania podczas importowania?Odpowiedzi:
W moim przypadku jest to problem z pozwoleniami. Pakiet został w jakiś sposób zainstalowany tylko z uprawnieniami roota rw, inny użytkownik po prostu nie może do niego rw!
źródło
sudo pip install ...
. Prosta poprawka:sudo chmod -R ugo+rX /lib/python2.7/site-packages/
sudo chmod 777 /usr/local/lib/python3.6/site-packages
wystarczyłyMiałem ten sam problem: skrypt z
import colorama
wyrzucał i ImportError, alesudo pip install colorama
mówił mi "pakiet już zainstalowany".Mój dylemat: uruchomić pip bez sudo :
pip install colorama
. Następnie pip zgodził się, że należy go zainstalować, zainstalować i uruchomić mój skrypt.Moje środowisko to Ubuntu 14.04 32-bitowe; Wydaje mi się, że widziałem to przed i po aktywowaniu virtualenv.
UPDATE : jeszcze lepiej, użyj
python -m pip install <package>
. Zaletą tego jest to, że ponieważ wykonujesz określoną wersję języka Python, w której chcesz umieścić pakiet, pip jednoznacznie zainstaluje pakiet we „właściwym” języku Python. Ponownie, nie używaj sudo w tym przypadku ... wtedy otrzymasz pakiet we właściwym miejscu, ale prawdopodobnie z (niechcianymi) uprawnieniami roota.źródło
To problem ze ścieżką w Pythonie.
W moim przypadku mam zainstalowanego Pythona w:
i nie ma katalogu pakietów witryn w pythonie2.6.
Pakiet (SOAPpy), który zainstalowałem przez pip, znajduje się
Pakiet witryn nie znajduje się w ścieżce Pythona, wszystko, co zrobiłem, to na stałe dodałem pakiety witryn do PYTHONPATH.
W wyskakującym pliku tekstowym dodaj ten wiersz na końcu:
eksportuj PYTHONPATH = $ PYTHONPATH: /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
źródło
Mechanizm importu Pythona naprawdę działa, więc albo:
źródło
sudo pip install
jej, została zainstalowana z uprawnieniami roota, a podczas importu coś bombarduje z powodu braku dostęp do odczytu lub zapisu.Uderzałem głową w monitor, dopóki młody stażysta nie powiedział mi, że sekretem jest „python setup.py install” w katalogu modułów.
Z jakiegoś powodu uruchomienie konfiguracji z tego miejsca sprawia, że po prostu działa.
Dla jasności, jeśli nazwa twojego modułu to „foo”:
Jeśli spróbujesz uruchomić plik setup.py z dowolnego innego katalogu, wywołując jego ścieżkę, zakończy się błędną instalacją.
NIE DZIAŁA:
DZIAŁA:
źródło
Udało mi się rozwiązać ten problem, stosując podejście łączone. Najpierw postąpiłem zgodnie z radą Chrisa, otworzyłem wiersz poleceń i wpisałem „pip show nazwa_pakietu”. Podało to lokalizację zainstalowanego pakietu.
Następnie otworzyłem Pythona i wpisałem „import sys”, a następnie „sys.path”, aby pokazać, gdzie mój Python szuka wszelkich importowanych przeze mnie pakietów. Niestety, lokalizacji pokazanej w pierwszym kroku NIE było na liście.
W ostatnim kroku wpisałem „sys.path.append („ package_location_seen_in_step_1 ”). Opcjonalnie możesz powtórzyć krok drugi, aby zobaczyć, że lokalizacja jest teraz na liście.
Krok testowy, spróbuj ponownie zaimportować pakiet ... to działa.
Wadą? Jest tymczasowy i za każdym razem trzeba go dodawać do listy.
źródło
Napotkałem to podczas próby użycia zestawu kluczy, który zainstalowałem za pośrednictwem
sudo pip install keyring
. Jak wspomniano w innych odpowiedziach, w moim przypadku jest to problem z uprawnieniami.Co mi pomogło:
sudo pip uninstall keyring
-H
opcji sudo i ponownie zainstalowałem zestaw kluczy:sudo -H pip install keyring
Mam nadzieję że to pomoże.
źródło
Jestem nowy w Pythonie. Rozwiązałem ten problem, zmieniając ścieżkę interpretera projektu.
File -> Settings -> Project -> Project Interpreter
źródło
Nie mogłem sprawić, by moja PYTHONPATH działała poprawnie. Zdałem sobie sprawę, że dodanie
export
rozwiązało problem:(zadziałało)
vs.
(nie działał)
źródło
W moim przypadku biegałem
pip install Django==1.11
i nie chciałem importować zpython
tłumacza.Przeglądając polecenia pip, znalazłem,
pip show
które wyglądały tak:Zwróć uwagę, że lokalizacja mówi „3.4”. Okazało się, że polecenie
python
-command zostało połączone zpython2.7
Zaraz obok znalazłem link o nazwie,
python3
więc z niego skorzystałem. Możesz także zmienić link napython3.4
. To też by to rozwiązało.źródło
W moim przypadku był to problem z brakującym plikiem init .py w module, który chciałem zaimportować w środowisku Python 2.7.
Python 3.3+ ma niejawne pakiety przestrzeni nazw, które pozwalają mu tworzyć pakiety bez pliku init .py.
źródło
Jeśli inne wymienione odpowiedzi nie działają, spróbuj usunąć pamięć podręczną pip i ponownie zainstalować pakiet. Na moim komputerze działa Ubuntu14.04 i znajdował się pod
~/.cache/pip
. Usunięcie tego folderu załatwiło sprawę.źródło
Upewnij się również, że nie pomylisz się
pip3
zpip
. Odkryłem, że pakiet, z którympip
został zainstalowany, nie działałpython3
i na odwrót.źródło
Czy w przypadku instalacji za pośrednictwem
easy_install
lubpip
czy zakończy się pomyślnie? Jaka jest pełna wydajność? Z której instalacji Pythona korzystasz? Może być konieczne użycie poleceniasudo
przed instalacją, jeśli instalujesz moduły w katalogu systemowym (być może, jeśli używasz systemowej instalacji Pythona). W Twoim pytaniu nie ma zbyt wielu przydatnych informacji, ale niektóre narzędzia, które prawdopodobnie pomogą, obejmują:echo $PYTHONPATH
i / lubecho $PATH
: podczas importowania modułów Python przeszukuje jedną z tych zmiennych środowiskowych (listy katalogów,:
rozdzielane) w poszukiwaniu żądanego modułu. Problemy z importowaniem często wynikają z braku odpowiedniego katalogu na tych listachwhich python
,which pip
lubwhich easy_install
: te wskażą lokalizację każdego pliku wykonywalnego. Warto wiedzieć.Użyj virtualenv , jak sugeruje @JesseBriggs. Działa bardzo dobrze,
pip
pomagając ci izolować i zarządzać modułami i środowiskiem dla oddzielnych projektów Pythona.źródło
Miałem dokładnie ten problem, ale żadna z powyższych odpowiedzi nie działała. Doprowadzało mnie to do szału, dopóki nie zauważyłem, że sys.path jest inny po zaimportowaniu z projektu nadrzędnego. Okazało się, że użyłem importlib do napisania małej funkcji, aby zaimportować plik spoza hierarchii projektu. Zły pomysł: zapomniałem, że to zrobiłem. Co gorsza, proces importu zepsuł się w sys.path - i tak to zostawił. Bardzo zły pomysł.
Rozwiązaniem było to zatrzymać i po prostu umieścić plik, który potrzebowałem zaimportować do projektu. Innym podejściem byłoby umieszczenie pliku we własnym projekcie, ponieważ od czasu do czasu trzeba go przebudowywać, a odbudowa może, ale nie musi, pokrywać się z przebudową głównego projektu.
źródło
Miałem ten problem z zainstalowanymi wersjami 2.7 i 3.5 w moim systemie, próbując przetestować bota telegramu za pomocą Python-Telegram-Bot .
Nie mogłem go uruchomić po zainstalowaniu z pip i pip3, z sudo lub bez. Zawsze miałem:
Prawidłowe przeczytanie komunikatu o błędzie informuje mnie, że Python szuka w bieżącym katalogu pliku
telegram.py
. I tak, miałem skrypt o nazwie telegram.py, który został załadowany przez Pythona, kiedy zadzwoniłemimport
.Podsumowując, upewnij się, że nie masz żadnego
package.py
w swoim bieżącym katalogu roboczym podczas próby importu. (I dokładnie przeczytaj komunikat o błędzie).źródło
Miałem podobny problem (w systemie Windows), a główną przyczyną w moim przypadku było oprogramowanie ANTYWIRUSOWE ! Posiada funkcję "Auto-Containment", która otacza uruchomiony proces jakimś rodzajem maszyny wirtualnej. Objawy to:
pip install somemodule
działa dobrze w jednym oknie wiersza polecenia iimport somemodule
kończy się niepowodzeniem, gdy jest wykonywany z innego procesu z błędemMam nadzieję, że komuś zaoszczędzi to trochę czasu :)
źródło
Może trochę nie na temat, ale miałem problemy
import PyYAML
. Zwraca uwagę, że musiszimport yaml
. (myślę, że to klasyczny rtfm ...)źródło
Miałem podobny problem używając Django. W moim przypadku mógłbym zaimportować moduł z powłoki Django, ale nie z pliku .py, który zaimportował moduł.
Problem polegał na tym, że uruchamiałem serwer Django (a zatem wykonałem plik .py) z innego virtualenv, z którego został zainstalowany moduł.
Zamiast tego instancja powłoki była uruchamiana w poprawnym virtualenv. Stąd, dlaczego to zadziałało.
źródło
To działa!!!
Dzieje się tak często, gdy moduł jest instalowany w starszej wersji Pythona lub w innym katalogu, nie martw się, ponieważ rozwiązanie jest proste. - importuj moduł z katalogu, w którym moduł jest zainstalowany. Możesz to zrobić, najpierw importując
sys
moduł Pythona , a następnie importując ze ścieżki, w której moduł jest zainstalowanyźródło
Większość możliwych przypadków została już uwzględniona w rozwiązaniach, po prostu udostępniając mój przypadek, zdarzyło mi się, że zainstalowałem pakiet w jednym środowisku (np.
X
) I importowałem pakiet w innym środowisku (npY
.). Dlatego zawsze upewnij się, że importujesz pakiet ze środowiska, w którym został zainstalowany.źródło
Coś, co zadziałało dla mnie, to:
Polecenie nie wymaga sudo. Zostało to przetestowane na OSX Mojave.
źródło
W moim przypadku musiałem również zainstalować moduł (y) dla superużytkownika.
Najwyraźniej superużytkownik nie może uzyskać dostępu do plików zwykłych użytkowników w pewnych okolicznościach.
źródło
Dla mnie było to zapewnienie, że wersja modułu jest zgodna z wersją Pythona, z którego korzystałem .. Zbudowałem obraz na pudełku z Pythonem 3.6, a następnie wstrzyknąłem do obrazu Dockera, który miał zainstalowany 3.7 , a następnie uderzyłem się w głowę kiedy Python mówił mi, że moduł nie został zainstalowany ...
36m
dla Pythona 3.6bsonnumpy.cpython-36m-x86_64-linux-gnu.so
37m
dla Pythona 3.7bsonnumpy.cpython-37m-x86_64-linux-gnu.so
źródło
pip install
wersja, która pasuje do używanej wersji Pythona. Jaki błąd otrzymujesz i jaki jest wynikpython --version
Wiem, że to bardzo stary post, ale dla mnie miałem problem z zainstalowanym 32-bitowym Pythonem i 64-bitowym Pythonem. Po odinstalowaniu 32-bitowego Pythona wszystko działało tak, jak powinno.
źródło
Rozwiązałem problem, że te same biblioteki działały dobrze w jednym projekcie (A), ale importowanie tych samych bibliotek do innego projektu (B) powodowało błąd. Używam Pycharm jako IDE w systemie operacyjnym Windows. Tak więc, po wypróbowaniu wielu potencjalnych rozwiązań i niepowodzeniu w rozwiązaniu problemu, zrobiłem dwie rzeczy (usunąłem folder „Venv” i ponownie skonfigurowałem interpreter):
Projekt 1-In (B), był folder o nazwie ("venv"), znajdujący się w Bibliotekach zewnętrznych /. Usunąłem ten folder.
2-Krok 1 (usunięcie folderu „venv”) powoduje błąd w konfiguracji interpretera języka Python, a na górze ekranu pojawia się komunikat „Nieprawidłowy interpreter języka Python wybrany dla projektu” i „skonfiguruj interpreter języka Python”, wybierz to łącze i gotowe otwiera nowe okno. Na liście rozwijanej „Interpreter projektu” znajduje się czerwona linia pokazująca poprzedniego nieprawidłowego tłumacza. Teraz otwórz tę listę i wybierz Python Interpreter (w moim przypadku jest to Python 3.7). Naciśnij „Zastosuj” i „OK” na dole i gotowe.
Uwaga: potencjalnie był to problem polegający na tym, że środowisko wirtualne mojego projektu (B) nie rozpoznawało już zainstalowanych i działających bibliotek.
źródło
Jeśli używasz środowiska wirtualnego, użyj
pipenv install <module name>
zamiastpip install <module name>
Pracował dla mnie.
źródło
Miałem też ten problem ... pakiet został zainstalowany w Pythonie 3.8.0, ale VS Code uruchamiał mój skrypt przy użyciu starszej wersji (3.4)
popraw w terminalu:
py .py
Upewnij się, że instalujesz pakiet w odpowiedniej wersji języka Python
źródło
Oto co mi pomogło, tak jak zrobił to dzisiaj znajomy (używam systemu Windows):
Naciśnij „Ustawienia” -> „Projekt” -> „Interpreter projektu”. Tutaj, w oknie po prawej stronie, znajduje się wiersz z tytułem „Tłumacz projektu” po lewej stronie. Kliknij tę linię, a otworzy się kilka dodatkowych linii.
Teraz naciśnij wiersz „Pokaż wszystko”. Otworzy się okno. W tym oknie naciśnij mały znak „+” w prawym górnym rogu.
Otworzy się nowe okno. Po lewej stronie znajdują się 4 zakładki, naciśnij najbardziej górną, która mówi „Środowisko Virtualenv”. Teraz w oknie po prawej zaznacz opcję „Istniejące środowisko”. Linia „Tłumacz” stanie się dobrze widoczna. Naciśnij przycisk „...” po prawej stronie wiersza.
Teraz otworzy się okno przeglądania. Przejdź do katalogu, w którym zainstalowałeś sam Python . Nie ten z PyCharm. Kiedy tam dotrzesz, wybierz plik „python.exe” i naciśnij OK (okno zniknie).
Naciśnij ponownie OK (to okno również zniknie).
Teraz w tym oknie upewnij się, że nowo utworzona linia jest zaznaczona i ponownie naciśnij OK.
Teraz wszystkie zainstalowane pakiety powinny być widoczne w interpretatorze projektu i są odczytywane przez Twój program.
źródło
Najprostsze rozwiązanie, które zadziałało dla mnie, a którego nie widzę w tym wątku:
Mam zainstalowanych wiele wersji Pythona, ale próbowałem użyć Python3.7 - więc musiałem użyć:
sudo pip3.7 install <package>
źródło