Неможливо встановити urlparse модуля python


9

якась програма, написана на Python 2.7, скаржиться на це ImportError: No module named 'urlparse'. Тому мені потрібно встановити модуль, але я не в змозі це зробити. Модуль існує, він описаний, наприклад, на https://docs.python.org/2/library/urlparse.html . Тим НЕ менше, ні apt-get install, ні pip installНЕ в змозі знайти модуль з ім'ям urlparse, python-urlparse, urllib, python-urllib... - Я отримую повідомлення , як Could not find any downloads that satisfy the requirement ...єдиний виняток є пакетом , python-urllib3який , ймовірно , містить необхідні файли , але для Python 3 і установки якого не допоможуть.

Я встановив pip, не pip3так як мені потрібен модуль для Python 2 ( pip 1.4.1 from /usr/lib/python2.7/dist-packages (python 2.7)). Мій Ubuntu - це Xubuntu 13.10.

Де проблема, будь ласка? Чи pipшукаєте модуль у потрібних місцях? Я не знаю, у яких місцях він повинен шукати ...


перевірити вихідpip search urlparse
Кенн

urlparseє частиною стандартної бібліотеки, тобто вона автоматично встановлюється разом із самим Python. Ви не зможете встановити il через apt, pip або easy_install.
Андреа Корбелліні

Ubuntu 13.10 застарів.
enedil

Відповіді:


13

urlparseє частиною стандартної бібліотеки Python 2. Поставляється як частина Python; він не упаковується окремо на PyPI та ін. urlparse.urlparse(функція) була перейменована в Python 3 to urllib.parse.

Отже, кілька речей, на які слід звернути увагу:

  • Можливо, ваша програма Python 2 працює під Python 3. Перевірте сценарій запуску, щоб побачити, як саме вибирати версію Python. Ймовірно, слід почати, #!/usr/bin/env python2але також подвійно перевірити (запустивши env python2), що завантажує Python 2.

  • Щось з'їли /usr/lib/python2.7/urlparse.py, і в цьому випадку перевстановіть libpython2.7-stdlibпакет із:

    sudo apt-get install --reinstall libpython2.7-stdlib
  • Або у вас є локальний файл, що спричиняє неприємності ...


11

Якщо вам потрібно написати код, сумісний із Python2 та Python3, ви можете скористатись наступним імпортом

try:
    from urllib.parse import urlparse
except ImportError:
    from urlparse import urlparse

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.