Программа Python работает в IDLE, но не в командной строке

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

Я пытаюсь запустить очень короткий скрипт в Python

from bs4 import BeautifulSoup import urllib.request html = urllib.request.urlopen("http://dictionary.reference.com/browse/word?s=t").read().strip() dhtml = str(html, "utf-8").strip() soup = BeautifulSoup(dhtml.strip(), "html.parser") print(soup.prettify()) 

Но я все время получаю сообщение об ошибке при запуске этой программы с помощью python.exe. UnicodeEncodeError: 'charmap' codec can't encode character '\u025c . Я пробовал много способов обойти это, но мне удалось выделить его на проблему преобразования байтов в строки. Когда я запускаю эту программу в IDLE, я получаю HTML как ожидалось. Что же делает IDLE автоматически? Могу ли я использовать программу интерпретации IDLE вместо python.exe? Благодаря!

РЕДАКТИРОВАТЬ:

Моя проблема вызвана print(soup.prettify()) но type(soup.prettify()) возвращает str ?

ПОСТАНОВИЛИ:

Я, наконец, принял решение использовать encode() и decode() из-за проблемы, которая была вызвана. Если кто-то знает, как реально решить вопрос, пожалуйста, сделайте это; также, спасибо за все ваши ответы

3 Solutions collect form web for “Программа Python работает в IDLE, но не в командной строке”

UnicodeEncodeError: кодек 'charmap' не может кодировать символ '\ u025c'

Кодировка символов консоли не может представлять '\u025c' т.е. символ «ɜ» Unicode (U + 025C LATIN SMALL LETTER REVERSED OPEN E) .

Что же делает IDLE автоматически?

IDLE отображает Unicode напрямую (только BMP-символы), если соответствующий шрифт поддерживает данные Unicode.

Могу ли я использовать программу интерпретации IDLE вместо python.exe

Да, запустите:

 T:\> py -midlelib -r your_script.py 

Примечание: вы можете записать произвольные символы Unicode на консоль Windows, если используется Unicode API:

 T:\> py -mpip install win-unicode-console T:\> py -mrun your_script.py 

См. Что такое сделка с Python 3.4, Unicode, разными языками и Windows?

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

На самом деле, нет. У вас есть PrintFails, как и все остальные.

Консоль Windows не может печатать Юникод. (Это не совсем так, но в точности, почему, когда и как вы можете получить Unicode из консоли, это болезненное упражнение, и обычно это не стоит.) Пытаясь напечатать символ, которого нет в ограниченной кодировке консоли не может работать, поэтому Python дает вам ошибку.

распечатайте их (для чего мне нужно более простое решение, потому что я не могу сделать .encode («utf-8») для большого количества элементов

Вы можете запустить set PYTHONIOENCODING=utf-8 команд set PYTHONIOENCODING=utf-8 перед запуском скрипта, чтобы указать Python на использование и кодировку, которые могут включать любой символ (поэтому ошибок нет), но любой вывод, не содержащий ASCII, все равно будет искажен, поскольку его кодировка не будет соответствуют фактической кодовой странице консоли.

(Или просто используйте IDLE.)

Я, наконец, принял решение использовать encode () и decode () из-за проблемы, которая была вызвана. Если кто-то знает, как реально решить вопрос, пожалуйста, сделайте это; также, спасибо за все ваши ответы

  • Быстрое обнаружение или моделирование WSAECONNREFUSED
  • PyInstaller-построенный Windows EXE не работает с многопроцессорной обработкой
  • Использование python для записи текстовых файлов с окончанием строки DOS в Linux
  • Обнаружение вызова скрипта Python из Windows DLL при использовании CTypes
  • Как получить владельца процесса с помощью Python с помощью WMI?
  • Странная проблема с кодировкой ввода в IPython
  • Получение PIL вместо Pillow для Python 2.7 64-бит в Windows
  • Связи python libclang на Windows не позволяют инициализировать блок перевода из возвышенного текста
  • Путь Python с не-латинским-1 PYTHONHOME
  • Ошибка: Не удалось найти vcvarsall.bat
  • Получение ошибки: невозможно найти vcvarsall.bat "при запуске" pip install numpy "на windows7 64bit
  •  
    Interesting Posts for Van-Lav

    Pythonic способ распечатать элементы списка

    Вызов скрипта Perl из Python

    Ошибка Webdriver: «Отсутствует предупреждение» после того, как UnexpectedAlertPresentException выбрано

    Написание программы для очистки форумов

    Невозможно вызвать метод родителя в понимании списка в инициализаторе ребенка, но работает явный цикл

    Процентное перекрытие двух списков

    Нет такого файла или каталога «limits.h» при установке Pillow on Alpine Linux

    Есть ли способ установить вкладки ноутбука ниже друг друга?

    Python3: В чем разница между ключевыми словами и встроенными?

    Аргумент argparse сгенерировал справку, «metavar» с выбором

    Python if-else short-hand

    Объединение списка объектов python с помощью метода __str__

    Python: получить частоту, основанную на двух столбцах (переменных) в pandas dataframe

    Как я могу отправлять команды клавиатуры (удерживать, выпускать, одновременное) с помощью скрипта python?

    цикл через петли в python?

    Python - лучший язык программирования в мире.