1. 程式人生 > >python報錯問題--ModuleNotFoundError: No module named 'pygal.i18n'

python報錯問題--ModuleNotFoundError: No module named 'pygal.i18n'

報錯問題:ModuleNotFoundError: No module named ‘pygal.i18n’

問題出處:
在《Python程式設計:從入門到實踐》書中的使用pygal.i18n模組獲取國別碼,但是 pygal已經沒有i18n模組,要改用pygal_maps_world.i18n

步驟:
1:匯入pygal_maps_world.i18n

from pygal_maps_world.i18n import COUNTRIES

def get_country_code(country_name):
    """根據指定的國家,返回pygal使用的兩個字母的國別碼"""
for code, name in COUNTRIES.items(): if name == country_name: return code # 如果沒有找到指定的國家,就返回None return None

2:執行檢查
這裡寫圖片描述

可以看到完美的出錯啦!!!

繼續:
說明:
事實上,pygal.i18n 已經不存在了,現在已經更改成了 pygal_maps_world ,需要單獨通過pip下載

解決:安裝pygal_maps_world 模組

這裡寫圖片描述

在步驟1處:
from pygal_maps_world.i18n import COUNTRIES

改成from pygal.maps.world import COUNTRIES
步驟1程式碼:

from pygal.maps.world import COUNTRIES

def get_country_code(country_name):
    """根據指定的國家,返回pygal使用的兩個字母的國別碼"""
    for code, name in COUNTRIES.items():
        if name == country_name:
            return code

    # 如果沒有找到指定的國家,就返回None
    return
None

再次執行結果:完美解決
這裡寫圖片描述