Nie można zainstalować urlparse modułu python

9

narzeka na to jakiś program napisany w Pythonie 2.7 ImportError: No module named 'urlparse'. Muszę więc zainstalować moduł, ale nie jestem w stanie tego zrobić. Moduł istnieje, jest opisany np. Na https://docs.python.org/2/library/urlparse.html . Jednak ani apt-get install, ani pip installw stanie znaleźć moduł o nazwie urlparse, python-urlparse, urllib, python-urllib... - Dostaję komunikaty takie jak Could not find any downloads that satisfy the requirement ...Jedynym wyjątkiem jest pakiet python-urllib3, który prawdopodobnie zawiera potrzebne pliki, ale dla Pythona 3 i instalacji, które nie pomogło.

Zainstalowałem pip, nie pip3odkąd potrzebuję modułu do Python 2 ( pip 1.4.1 from /usr/lib/python2.7/dist-packages (python 2.7)). Moje Ubuntu to Xubuntu 13.10.

Gdzie jest problem? Czy pipwyszukiwanie modułu we właściwych miejscach? Nie wiem w jakich lokalizacjach powinien szukać ...

MoreFamed
źródło
sprawdź wynikipip search urlparse
kenn
urlparsejest częścią standardowej biblioteki, tzn. jest instalowana automatycznie wraz z samym Pythonem. Nie będziesz mógł zainstalować il poprzez apt, pip lub easy_install.
Andrea Corbellini,
Ubuntu 13.10 jest nieaktualny.
enedil

Odpowiedzi:

13

urlparsejest częścią standardowej biblioteki Python 2. Jest dostarczany jako część Pythona; nie jest pakowany osobno w PyPI i in. urlparse.urlparse(funkcja) została zmieniona w Pythonie 3 na urllib.parse.

Kilka rzeczy do obejrzenia:

  • Twój program Python 2 może działać pod Pythonem 3. Sprawdź skrypt uruchamiania, aby zobaczyć, jak wybiera wersję Pythona. Prawdopodobnie powinien się uruchomić, #!/usr/bin/env python2ale także dwukrotnie sprawdzić (uruchamiając env python2), że ładuje Python 2.

  • Coś zjadło /usr/lib/python2.7/urlparse.py, w takim przypadku zainstaluj ponownie libpython2.7-stdlibpakiet za pomocą:

    sudo apt-get install --reinstall libpython2.7-stdlib
  • Lub masz lokalny plik powodujący psoty ...

Oli
źródło
11

Jeśli chcesz napisać kod zgodny z Python2 i Python3, możesz użyć następującego importu

try:
    from urllib.parse import urlparse
except ImportError:
    from urlparse import urlparse
Tully
źródło
2

Jeśli używasz Pythona 2, zainstaluj go za pomocą

pip install urlparse2
Waqar Detho
źródło