Nie można zaimportować modułu Pythona, który jest zdecydowanie zainstalowany (mechanize)
Trwają problemy z instalacją Pythona (2.7.3) na moim Ubuntu 12.04 i importowaniem modułów.
Tutaj mam problem, w którym zdecydowanie zainstalowałem mechanize zarówno na mojej maszynie, jak i w różnych środowiskach wirtualnych.
Próbowałem zainstalować z pip, easy_install i via {[3] } z tego repo: https://github.com/abielr/mechanize .
Wszystko to na próżno, ponieważ za każdym razem, gdy wchodzę do mojego Pythona interactive, dostaję:
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
>>>
Inne Komputery, na których to instaluję nie mają problemu(komputer Mac lub komputer z Windows w pracy, na przykład, wszystko jest dobre, instaluje i importuje jak zwykle).
Doprowadza mnie to do szału, a ja po prostu chcę trochę popracować.Informacje o aktualizacji (w odpowiedzi na komentarze):
Out of easy_install mechanize
and paths:
<me>@<host>:~$ sudo easy_install mechanize
[sudo] password for <me>:
Processing mechanize
Writing /home/<me>/mechanize/setup.cfg
Running setup.py -q bdist_egg --dist-dir /home/<me>/mechanize/egg-dist-tmp-zXwJ_d
warning: no files found matching '*.html' under directory 'docs'
warning: no files found matching '*.css' under directory 'docs'
warning: no files found matching '*.js' under directory 'docs'
mechanize 0.2.6.dev-20130112 is already the active version in easy-install.pth
Installed /usr/local/lib/python2.7/dist-packages/mechanize-0.2.6.dev_20130112-py2.7.egg
Processing dependencies for mechanize==0.2.6.dev-20130112
Finished processing dependencies for mechanize==0.2.6.dev-20130112
<me>@<host>:~$ ^C
<me>@<host>:~$ which pip
/home/<me>/bin/pip
<me>@<host>:~$ which python
/home/<me>/bin/python
<me>@<host>:~$ which easy_install
/home/<me>/bin/easy_install
<me>@<host>:~$
DRUGA AKTUALIZACJA:
Wydaje się być coś z mechanize, jakby dodać inny losowy Pakiet przez pip, nie ma problem (w tym przypadku html5lib
)
TRZECIA AKTUALIZACJA (@DSM)
1)
>>> sys.path
['', '/home/<me>/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/home/<me>/local/lib/python2.7/site-packages/virtualenvwrapper-2.11-py2.7.egg', '/home/<me>/src/geopy', '/home/<me>/local/lib/python2.7/site-packages/BeautifulSoup-3.2.0-py2.7.egg', '/home/<me>/local/lib/python2.7/site-packages/django_sorting-0.1-py2.7.egg' ... <so on and so forth but mechanize is not here>]
>>>
2) *pretty long output of which most looks like:*
<me>@<host>:~$ ls -laR /usr/local/lib/python2.7/dist-packages/mech*
/usr/local/lib/python2.7/dist-packages/mechanize:
total 1144
...lots of other files, pretty much same permissions...
-rw-r--r-- 1 root staff 24916 Jan 11 01:19 _mechanize.py
...lots of other files...
3)
>>> import imp
>>> imp.find_module("mechanize")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
Czwarta edycja (robi się śmiesznie :/): Jest to podobne do problemu, który miałem wcześniej (całkowite usunięcie i świeża instalacja Pythona na Ubuntu 12.04), gdzie jeśli uruchamiam wszystko z sudo, jest w porządku, ale nie wiem, czy powinienem to zrobić... co z uprawnieniami?
15 answers
W moim przypadku jest to problem z pozwoleniem. Pakiet został jakoś zainstalowany z uprawnieniami root RW tylko, inny użytkownik po prostu nie może rw do niego!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-04 17:55:33
Miałem ten sam problem: skrypt z import colorama
rzucał i ImportError, ale sudo pip install colorama
mówił mi "pakiet już zainstalowany".
Moja poprawka: Uruchom pip bez sudo: pip install colorama
. Potem PIP zgodził się, że trzeba go zainstalować, zainstalowałem go i uruchomił się mój skrypt.
Moim środowiskiem jest Ubuntu 14.04 32-bit; myślę, że widziałem to przed i po aktywacji mojego virtualenv.
UPDATE : jeszcze lepiej, Użyj python -m pip install <package>
. Zaletą tego jest to, że wykonujesz konkretne wersja Pythona, w której chcesz umieścić pakiet, pip jednoznacznie zainstaluje pakiet w" prawym " Pythonie. Ponownie, nie używaj w tym przypadku sudo... następnie dostajesz pakiet we właściwym miejscu, ale prawdopodobnie z (niechcianymi) uprawnieniami roota.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-26 23:37:39
To problem ścieżki Pythona.
W moim przypadku mam zainstalowany python w:
/ Library / Framework/Python.framework / Versions/2.6 / bin / python,
I nie ma katalogu site-packages w python2. 6.
Pakiet (SOAPpy), który zainstalowałem przez pip znajduje się
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
I site-package nie znajduje się w ścieżce Pythona, jedyne co zrobiłem to dodanie site-packages do PYTHONPATH na stałe.
- Otwórz Terminal
- Typ otwarty .bash_profile
-
W pliku tekstowym, który się pojawi, dodaj tę linię na końcu:
Export PYTHONPATH = $PYTHONPATH:/System/Library/frameworks / Python.framework / Versions/2.6/lib/python2.6 / site-packages /
- Zapisz plik, uruchom ponownie Terminal i gotowe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-20 04:59:40
Mechanizm importu Pythona działa, tak naprawdę, albo:
- twój PYTHONPATH jest zły,
- Twoja biblioteka nie jest zainstalowana tam, gdzie myślisz, że jest
- masz inną bibliotekę o tej samej nazwie maskującą tę
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-12 17:19:35
Walałem głową o monitor, dopóki Młody stażysta nie powiedział mi, że sekret polega na "Pythonie". setup.py install " wewnątrz katalogu modułu.
Z jakiegoś powodu uruchomienie konfiguracji stamtąd sprawia, że po prostu działa.
Aby było jasne, jeśli nazwa Twojego modułu to "foo":
[burnc7 (2016-06-21 15:28:49) git]# ls -l
total 1
drwxr-xr-x 7 root root 118 Jun 21 15:22 foo
[burnc7 (2016-06-21 15:28:51) git]# cd foo
[burnc7 (2016-06-21 15:28:53) foo]# ls -l
total 2
drwxr-xr-x 2 root root 93 Jun 21 15:23 foo
-rw-r--r-- 1 root root 416 May 31 12:26 setup.py
[burnc7 (2016-06-21 15:28:54) foo]# python setup.py install
<--snip-->
If you try to run setup.py z dowolnego innego katalogu wywołując jego ścieżkę, kończysz z borked install.
NIE DZIAŁA:
python /root/foo/setup.py install
Robi Praca:
cd /root/foo
python setup.py install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-21 22:32:23
W moim przypadku miałem uruchomiony pip install Django==1.11
i nie importował z interpretera python
.
Przeglądając polecenia Pipa znalazłem pip show
które wyglądały tak:
> pip show Django
Name: Django
Version: 1.11
...
Location: /usr/lib/python3.4/site-packages
...
Zauważ, że lokalizacja mówi "3.4". Okazało się, że polecenie python
-jest powiązane z python2.7
/usr/bin> ls -l python
lrwxrwxrwx 1 root root 9 Mar 14 15:48 python -> python2.7
Tuż obok znalazłem link o nazwie python3
więc go użyłem. Możesz również zmienić link na python3.4
. To też by to naprawiło.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-19 10:39:42
Nie mogłem sprawić, by Moja ścieżka PYTHONPATH działała prawidłowo. Zdałem sobie sprawę, że dodanie export
naprawiło problem:
(did work)
export PYTHONPATH=$PYTHONPATH:~/test/site-packages
Vs.
(nie działa)
PYTHONPATH=$PYTHONPATH:~/test/site-packages
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-06 17:59:32
Napotkałem to podczas próby użycia breloka, który zainstalowałem przez sudo pip install keyring
. Jak wspomniano w innych odpowiedziach, w moim przypadku jest to problem z uprawnieniami.
Co u mnie zadziałało:
- odinstalowany brelok:
sudo pip uninstall keyring
- użyłem opcji sudo
-H
i ponownie zainstalowałem keyring:sudo -H pip install keyring
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-04 05:56:08
Miałem dokładnie taki problem, ale żadna z powyższych odpowiedzi nie zadziałała. Doprowadzało mnie to do szału, dopóki nie zauważyłem tego sys.ścieżka była inna po zaimportowaniu z projektu macierzystego. Okazało się, że użyłem importlib do napisania małej funkcji, aby zaimportować plik nie w hierarchii projektu. Zły pomysł: zapomniałem, że to zrobiłem. Co gorsza, proces importu został zablokowany przez sys./ align = "left" / Bardzo zły pomysł.
Rozwiązaniem było powstrzymanie tego i po prostu umieść plik potrzebny do zaimportowania do projektu. Innym podejściem byłoby umieszczenie pliku we własnym projekcie, ponieważ musi on być odbudowywany od czasu do czasu, a odbudowa może lub nie musi pokrywać się z odbudową głównego projektu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-17 19:08:39
Miałem ten problem z 2.7 i 3.5 zainstalowanych w moim systemie próbując przetestować Bot telegram z Python-Telegram-Bot .
Nie mogłem uruchomić go po zainstalowaniu z pip i pip3, z sudo lub bez. Zawsze mam:
Traceback (most recent call last):
File "telegram.py", line 2, in <module>
from telegram.ext import Updater
File "$USER/telegram.py", line 2, in <module>
from telegram.ext import Updater
ImportError: No module named 'telegram.ext'; 'telegram' is not a package
Poprawne odczytanie Komunikatu o błędzie mówi mi, że python szuka w bieżącym katalogu telegram.py
. I tak, leżał tam skrypt o nazwie telegram.py i to zostało załadowane przez Pythona, kiedy zadzwoniłem import
.
Wniosek, upewnij się, że nie masz package.py
w bieżącym katalogu roboczym podczas próby zaimportowania. (I dokładnie odczytaj komunikat o błędzie).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-10 07:09:29
python -m pip install
- pomógł mi rozwiązać ten problem. Zacząłem zmierzyć się z tym problemem po aktualizacji python to 2.7.14
(z 12
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-07 12:13:34
Udało mi się rozwiązać ten problem za pomocą podejścia połączonego. Najpierw posłuchałem Rady Chrisa, otworzyłem wiersz poleceń i wpisałem "PIP show packagename" Podało to lokalizację zainstalowanego pakietu.
Następnie otworzyłem python i wpisałem 'import sys', a następnie ' sys.path', aby pokazać, gdzie mój python szuka wszystkich importowanych pakietów. Niestety, lokalizacja pokazana w pierwszym kroku nie była na liście.
Ostatni krok, wpisałem ' sys./ align = "left" / append ('package_location_seen_in_step_1'). Ty opcjonalnie można powtórzyć krok drugi, aby zobaczyć lokalizację na liście.
Krok testowy, spróbuj ponownie zaimportować pakiet... to działa.
Minusem? Jest tymczasowy i za każdym razem należy go dodawać do listy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-01 22:34:23
Miałem podobny problem (na Windows) i główną przyczyną w moim przypadku było oprogramowanie antywirusowe ! Posiada funkcję "Auto-powstrzymywania", która owija uruchomiony proces jakąś maszyną wirtualną.
Objawy są następujące: pip install somemodule
działa dobrze w jednym oknie linii cmd i import somemodule
nie działa po wykonaniu z innego procesu z błędem
ModuleNotFoundError: No module named 'somemodule'
Mam nadzieję, że zaoszczędzi to komuś trochę czasu:)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-07 06:42:49
Po zainstalowaniu przez easy_install
LUB pip
, czy zakończy się pomyślnie? Jaka jest pełna wydajność? Z której instalacji Pythona korzystasz? Może być konieczne użycie sudo
przed poleceniem instalacji, jeśli instalujesz Moduły w katalogu systemowym(jeśli używasz instalacji Pythona systemowego, być może). Nie ma zbyt wielu przydatnych informacji w twoim pytaniu, ale niektóre narzędzia, które prawdopodobnie pomogą, to: {]}
-
echo $PYTHONPATH
i / lubecho $PATH
: przy imporcie Moduły, Python przeszukuje jedną z tych zmiennych środowiskowych (listy katalogów, rozdzielane:
) pod kątem żądanego modułu. Problemy z importowaniem są często spowodowane brakiem odpowiedniego katalogu na tych listach which python
,which pip
, orwhich easy_install
: te powiedzą ci lokalizację KAŻDEGO pliku wykonywalnego. To może pomóc wiedzieć.Użyj virtualenv, Jak sugeruje @JesseBriggs. Działa bardzo dobrze z
pip
, aby pomóc Ci wyodrębnić i zarządzać modułami i środowiska dla oddzielnych projektów Pythona.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-12 17:26:56
Jeśli nauczysz się używać virtualenv (co jest dość martwe-proste), będziesz miał mniej tych problemów. Po prostu pobierzecie virtualenv i będziecie używać lokalnych (do projektu) pakietów.
To rozwiązuje dla mnie wiele bólu głowy ścieżkami, wersjami itp.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-12 17:18:56