ModuleNotFoundError: нет модуля с именем 'http.server'; http не является пакетом - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь настроить http-сервер на моем компьютере, но получаю сообщение об ошибке:

ModuleNotFoundError: No module named 'http.server'; 'http' is not a package

У меня есть 2 файла в каталоге проекта: http.py и index.html.

Вот это http.py:

import http.server
import socketserver

PORT = 8080
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

Я уже пытался изменить модуль на BaseHTTPServer, и я получаю эту ошибку:

ModuleNotFoundError: No module named 'BaseHTTPServer'

Я также заметил странную вещь, происходящую на мой терминал. Если я пытаюсь сделать

python3 -m pip uninstall <module>

, я получаю ошибку, такую ​​как

ModuleNotFoundError: No module named 'http.server'; 'http' is not a package

, которая сбивает меня с толку, потому что я даже не запускаю файл. Я упоминаю об этом на случай, если есть какие-либо признаки того, что какая-то локальная конфигурация может быть проблемой для всех.

1 Ответ

1 голос
/ 29 апреля 2020

Вы назвали свой файл как http.py. Это переопределяет модуль стандартной библиотеки http . Решить:

  • Необходимо переименовать файл http.py во что-то другое.
  • Удалить .pyc файлов в проекте

    find . -name "*.pyc" -delete

  • Запустите программу еще раз.

Возможно, вам будет интересно прочитать о том, как модули и пакеты работают в Python.

...