【问题标题】:How do I solve these "unresolved attribute references" when trying to create a world map?尝试创建世界地图时如何解决这些“未解决的属性引用”?
【发布时间】:2021-07-10 17:12:25
【问题描述】:

我目前正在做一个 Python 项目,我正在创建一个世界地图可视化,以不同的颜色突出显示北美洲、南美洲和中美洲。当我运行代码时,没有创建世界地图文件。所有有语法 add 的地方都被突出显示,它说“类 Worldmap() 的未解析属性引用'添加'”。

此外,wm.render_to_file 中的 render_to_file 被突出显示,并显示“未解析的属性引用 'render_to_file' 类 Worldmap”。

这些错误是什么意思,我该如何修复它们并创建地图?在尝试解决此问题时,我已经查看并应用了以下链接中的信息: http://www.pygal.org/en/stable/documentation/types/maps/pygal_maps_world.html

这是代码的相关部分。我在 Mac 上使用 Python 3.9、Pygal 1.7 和文本编辑器 Pycharms 2021.1.1。

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 Crash Course一书。当书中的代码给我这些错误时,我编辑了上面的代码以复制上面链接中的代码,例如使用pygal.maps.world.World() 而不是pygal.Worldmap()。然后它给了我错误“在 __init.__py 中找不到引用 'world()'

【问题讨论】:

  • 您链接到的文档似乎与您在代码中实际使用的子模块不同。
  • 我上面分享的代码来自Python Crash Course 一书中我正在做的项目中指导的代码。当书中的代码给我这些错误时,我编辑了上面的代码以复制上面链接中的代码,例如使用“pygal.maps.world.World()”而不是“pygal.Worldmap()”。然后它给了我错误“在 __init.__py 中找不到引用 'world()”。

标签: python pygal


【解决方案1】:

本书作者的网站指出,自本书出版以来,图书馆已更新;他们的一般 cmets 和说明在https://ehmatthes.github.io/pcc/updates.html,第 16 章的注释(这似乎是你遇到的问题)在https://ehmatthes.github.io/pcc/chapter_16/README.html#updates

【讨论】:

  • 我是PCC的作者。您指出了正确的更新,但还应该注意的是,本书的第一版已经绝版两年多了,所以即使是这些更新也可能已经过时了。
  • 我已经将我的 pygal 版本从 2.2.3 降级到 1.7,以便能够使用书中的原始代码,它仍然不会显示世界地图。我能看到的唯一错误是 amercas.py 文件下“wm=pygal.Worldmap()”中的“Worldmap”被突出显示,并说“在 init.py 中找不到参考 Wordmap”
  • 请更新问题以显示您正在使用的库的确切版本。
猜你喜欢
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多