TypeError: требуется байтовый объект, а не «str» для команды изображения в Python

Я пытаюсь загрузить изображение дерева решений в Python, но не могу этого сделать.

Код:

from IPython.display import Image  
#import pydotplus as pydot
from sklearn import tree
from os import system

train_char_label = ['1', '2']
park_Tree_File = open('park_tree.dot','w')
dot_data = tree.export_graphviz(dt_model, out_file=park_Tree_File, 
feature_names = list(train_set),
                                class_names = list(train_char_label))

park_Tree_File.close()

print (pd.DataFrame(dt_model.feature_importances_, columns = ["Imp"], index 
= train_set.columns))

system("dot -Tpng park_tree.dot -o park_tree.png") # This command is to OS
Image("park_tree.png") # use the image command to read the .png file 
                       # and print on screen

Я получаю следующую ошибку:

TypeError: a bytes-like object is required, not 'str' for Image command in Python

Не могли бы вы подсказать, что не так с командой Image? Команда print до этого работает нормально и печатает feature_importance отлично.

Вы забыли сообщить людям, какое сообщение об ошибке вы получаете? "Файл не найден"?

Sheldore 06.03.2019 17:55

Сообщение об ошибке находится в заголовке вопроса

Sascha Gottfried 06.03.2019 17:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
3 318
2

Ответы 2

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

import os
os.getwd()

Этот код показывает каталог, в котором ваш код ищет изображение «park_tree.png». проверьте, действительно ли изображение находится в каталоге. Вы можете сделать это, выполнив

os.listdir()

Это покажет каждый файл в текущем каталоге. В моем случае имя файла отличалось от имени, представленного в коде.

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

  1. Попробуйте изменить абсолютный путь pwd. Держите это довольно просто (без каких-либо цифр, специальных символов, пробелов и т. д.), этот метод сработал для меня. В качестве альтернативы, если вы не хотите менять pwd, попробуйте выполнить некоторые манипуляции с путем к файлу. Ссылка: проверить здесь

  2. Если вы используете блокнот Jupyter и вам нужно вставить изображение только один раз, вы можете перейти к ячейке Markdown > Изменить (выпадающий список) > Вставить изображение.

Другие вопросы по теме