Как мне решить эти «неразрешенные ссылки на атрибуты» при попытке создать карту мира?

#python #pygal

Вопрос:

В настоящее время я занимаюсь проектом на Python, в котором создаю визуализацию карты мира, которая выделяет Северную, Южную и Центральную Америку разными цветами. Когда я запускаю код, файл карты мира не создается. Все места, где есть синтаксис add , выделены, и там написано «неразрешенная ссылка на атрибут»добавить» для класса Worldmap ()».

Кроме того, render_to_file в wm.render_to_file выделено и написано «неразрешенная ссылка на атрибут «render_to_file» для карты мира класса».

Что означают эти ошибки и как я могу их исправить и создать карту? Я уже просмотрел и применил информацию по ссылке ниже, пытаясь исправить это: http://www.pygal.org/en/stable/documentation/types/maps/pygal_maps_world.html

Вот соответствующая часть кодекса. Я использую Python 3.9, Pygal 1.7 и текстовый редактор Pycharms 2021.1.1 на Mac.

 import pygal

wm = pygal.Worldmap()
wm.title = "North, Central, and South America"
wm.add("North America", ["ca", "mx", "us"])
wm.add("Central America", ["bz", "cr", "gt", "hn", "ni", "pa", "sv"])
wm.add("South America", ["ar", "br" , "bo", "cl", "co", "ec", "gf", "gy", "pe", "py", "sr", "uy", "ve"])
wm.render_to_file("americas.svg")
 

Этот код взят из книги «Ускоренный курс Python«. Когда код в книге дал мне эти ошибки, я отредактировал приведенный выше код, чтобы воспроизвести код в приведенной выше ссылке, например, pygal.maps.world.World() вместо pygal.Worldmap() . Затем он выдает мне ошибку «не удается найти ссылки ‘world() в __init.__py ‘

Комментарии:

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

2. Код, которым я поделился выше, взят из кода, описанного в книге «Ускоренный курс Python», из которого был взят проект, которым я занимаюсь. Когда код в книге дал мне эти ошибки, я отредактировал приведенный выше код, чтобы воспроизвести код по ссылке выше, например, «pygal.maps.world. Мир()» вместо «пигал. Карта мира().» Затем он выдает мне ошибку «не удается найти ссылки ‘world() в __init.__py ‘».

Ответ №1:

На веб-сайте автора книги отмечается, что библиотека была обновлена с момента выхода книги в печать; их общие комментарии и инструкции находятся по адресу https://ehmatthes.github.io/pcc/updates.html и примечания к главе 16 (с которой, похоже, у вас возникли проблемы) в https://ehmatthes.github.io/pcc/chapter_16/README.html#updates

Комментарии:

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

2. Я понизил свою версию pygal с 2.2.3 до 1.7, чтобы иметь возможность использовать исходный код в книге, и он по-прежнему не будет отображать карту мира. Единственная ошибка, которую я вижу, заключается в том, что «Карта мира» в «wm=pygal. Карта мира()» под amercas.py файл выделен и говорит, что «не удается найти справочную текстовую карту в init.py »

3. Пожалуйста, обновите вопрос, чтобы узнать, какую точную версию библиотеки вы используете.