Неможливо встановити 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.