Ошибка ModuleNotFoundError: Нет модуля с именем ‘urllib3.packages.six.moves’ в простом приложении погоды

Вопрос или проблема

Когда я запускаю код, я получаю ошибку “ModuleNotFoundError: Нет модуля с именем ‘urllib3.packages.six.moves”, несмотря на то, что я много раз удалял и переустанавливал six, requests и urllib3.

Код:

import requests
import json


def get_weather(city, api_key):
    base_url = "http://api.openweathermap.org/data/2.5/weather?"


    complete_url = base_url + "q=" + city + "&appid=" + api_key + "&units=metric"

    response = requests.get(complete_url)
    data = response.json()

    if data["cod"] != "404":
        main = data["main"]
        wind = data["wind"]
        weather = data["weather"][0]
        temperature = main["temp"]
        humidity = main["humidity"]
        weather_description = weather["description"]
        wind_speed = wind["speed"]

        print(f"Город: {city}")
        print(f"Температура: {temperature}°C")
        print(f"Влажность: {humidity}%")
        print(f"Погода: {weather_description.capitalize()}")
        print(f"Скорость ветра: {wind_speed} м/с")

    else:
        print(f"Город {city} не найден. Пожалуйста, введите правильное название города.")


if __name__ == "__main__":
    api_key = "5a249ac961fe0222f884ded14818c13e"
    city = input("Введите название города: ")
    get_weather(city, api_key)

Я пытался запустить программу, и должен был появиться текстовый вывод, который затем запрашивал название города у пользователя для ввода, после чего должна была появиться информация о погоде. Я пытался переустанавливать six, requests и urllib3, удалял версию python размером 0kb в директории Microsoft и выполнял “sfc /scannow”.

Ваш код также работает нормально в Windows. Вы используете виртуальное окружение? Если нет, попробуйте в командной строке выполнить “pip list”, чтобы проверить, есть ли urllib3 в списке. Если вы используете виртуальное окружение, активируйте его и выполните “pip list” в командной строке, затем проверьте список на наличие urllib3. Возможно, в окружении (виртуальном или системном), которое вы используете при запуске кода, все еще нет установленного urllib3.

Ответ или решение

Ошибка ModuleNotFoundError: No module named 'urllib3.packages.six.moves' часто указывает на проблемы с установкой пакета urllib3 или его зависимостей. В вашем случае, несмотря на повторные попытки переустановить пакеты six, requests и urllib3, ошибка все равно возникает. Давайте рассмотрим несколько шагов для решения этой проблемы.

Решение проблемы

  1. Проверка установленных пакетов:
    Убедитесь, что необходимые пакеты установлены в вашей среде. Выполните команду:

    pip list

    Убедитесь, что urllib3, requests и six присутствуют в списке установленных пакетов.

  2. Удаление и переустановка пакетов:
    Попробуйте удалить пакеты перед их повторной установкой:

    pip uninstall urllib3 requests six

    Затем снова установите их:

    pip install requests urllib3 six
  3. Использование виртуального окружения:
    Если вы не используете виртуальное окружение, рекомендуется создать его. Это поможет избежать конфликтов между глобальными и локальными библиотеками. Вот как это сделать:

    python -m venv myenv

    Активируйте окружение:

    • Для Windows:
      myenv\Scripts\activate
    • Для macOS/Linux:
      source myenv/bin/activate

    После активации окружения установите необходимые пакеты заново:

    pip install requests
  4. Обновление pip:
    Убедитесь, что у вас установлена последняя версия pip, так как это может повлиять на установку пакетов:

    python -m pip install --upgrade pip
  5. Проверка версии Python:
    Иногда проблемы с совместимостью между версиями Python и библиотеками могут вызывать ошибки. Убедитесь, что ваши пакеты совместимы с вашей версией Python.

  6. Запуск кода:
    Если после выполнения вышеуказанных шагов проблема не устранена, попробуйте запустить ваш код еще раз. Убедитесь, что вы находитесь в правильной среде (виртуальной или глобальной), когда запускаете приложение.

Пример работы программы

Ваш код выглядит правильно и, когда все зависимости установлены, он должен работать следующим образом:

Введите название города: Москва
Город: Москва
Температура: 10°C
Влажность: 50%
Погода: Ясно
Скорость ветра: 5 м/с

Заключение

Надеюсь, данные рекомендации помогут вам устранить проблему с ModuleNotFoundError. Если ошибка сохраняется, пожалуйста, проверьте, не конфликтует ли ваша установка Python с другими версиями или библиотеками на вашей машине.

Оцените материал
Добавить комментарий

Капча загружается...