You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用pycountry_convert实现国家转大洲报错如何解决?

问题原因排查与解决步骤

1. 确认包安装与开发环境匹配

  • 首先确认你安装依赖时使用的pip,和Pycharm当前项目绑定的Python解释器是同一个:
    • 打开Pycharm的「文件->设置->项目:你的项目名->Python解释器」,查看列表里是否存在pycountry-convert(注意是横杠命名的包)
    • 如果不存在,直接在该界面点击加号搜索pycountry-convert安装,或者在Pycharm底部的「终端」标签里执行安装命令:
      pip install pycountry-convert
      
  • 注意不要把导入名和安装包名搞混:安装时用的是横杠pycountry-convert,代码里导入用的是下划线import pycountry_convert as pc,country_alpha2_to_continent_code是pycountry_convert库的方法,不是pycountry原生提供的,不要直接用pycountry.xxx调用该方法。

2. 排查文件命名冲突

如果确认包已经安装到对应解释器,还是报错,大概率是你自己的Python脚本命名和官方库重名了:

  • 检查你的代码文件是否命名为pycountry.py或者pycountry_convert.py,如果是的话必须重命名(比如改成country2continent.py),否则Python导入时会优先加载你自己写的同名文件,导致找不到官方库的对应属性。

3. 验证功能正常可用

完成上面两步后,可以执行测试代码验证:

import pycountry_convert as pc

def country_to_continent(country_name):
    country_alpha2 = pc.country_name_to_country_alpha2(country_name)
    country_continent_code = pc.country_alpha2_to_continent_code(country_alpha2)
    country_continent_name = pc.convert_continent_code_to_continent_name(country_continent_code)
    return country_continent_name

# 测试示例
print(country_to_continent("China")) # 输出 Asia
print(country_to_continent("France")) # 输出 Europe

替代方案(仅用pycountry实现)

如果还是无法正常使用pycountry-convert,可以用pycountry加自定义大洲映射表实现相同功能,不需要额外安装其他依赖:

import pycountry

# 大洲代码映射表,可按需补充完整所有国家的映射
CONTINENT_MAP = {
    'AD': 'Europe', 'AE': 'Asia', 'AF': 'Asia', 'AG': 'North America', 'AI': 'North America',
    'AL': 'Europe', 'AM': 'Asia', 'AO': 'Africa', 'AQ': 'Antarctica', 'AR': 'South America',
    'CN': 'Asia', 'US': 'North America', 'FR': 'Europe', 'JP': 'Asia'
}

def country_to_continent(country_name):
    country = pycountry.countries.get(name=country_name)
    if not country:
        # 兼容别名匹配,比如"America"匹配"United States"
        country = pycountry.countries.search_fuzzy(country_name)[0]
    return CONTINENT_MAP.get(country.alpha_2, "Unknown")

内容的提问来源于stack exchange,提问作者abc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:24:07