python-votesmart 是一个用于访问 VoteSmart.org 网站上关于美国政治家、投票记录、选举等信息的 Python API,它对于研究美国政治、数据分析和相关项目非常有用。

第一步:准备工作
在安装任何 Python 包之前,请确保你的系统已经准备好。
安装 Python
如果你还没有安装 Python,请先从 Python 官网 下载并安装,安装时,请务必勾选 "Add Python to PATH" 选项,这样你就可以在命令行中直接使用 python 命令。
安装 pip
pip 是 Python 的包安装器,现代的 Python 安装通常会自带 pip,你可以在命令行(Windows上是CMD或PowerShell,macOS或Linux上是Terminal)中输入以下命令来检查:
pip --version
如果看到版本号,说明 pip 已经安装好了,如果提示 pip: command not found,你可能需要先安装它,或者将 Python 的 Scripts 目录添加到系统环境变量 PATH 中。

第二步:安装 python-votesmart
安装 python-votesmart 非常简单,只需要使用 pip 即可。
使用 pip 命令(推荐)
打开你的命令行工具,然后运行以下命令:
pip install python-votesmart
如果你有多个 Python 版本(Python 2 和 Python 3),你可能需要使用 pip3 来确保包安装到正确的 Python 3 环境中:
pip3 install python-votesmart
使用 Python -m pip
为了避免与系统可能存在的其他 pip 版本冲突,你也可以使用这种方式:

python -m pip install python-votesmart
验证安装
安装完成后,你可以通过尝试导入该库来验证是否安装成功:
python -c "import votesmart; print(votesmart.__version__)"
如果命令执行成功,并打印出版本号(或者没有版本号,但也没有报错),说明安装成功。
第三步:基本使用示例
安装完成后,你就可以在 Python 代码中使用它了。 VoteSmart API 需要一个 API 密钥才能使用。
获取 API 密钥
- 访问 VoteSmart.org 并注册一个免费账户。
- 登录后,进入你的账户设置页面,找到 API 密钥,通常在 "My Account" 或 "API" 相关部分。
- 将你的 API 密钥复制下来,妥善保管。
编写代码
下面是一个简单的示例,演示如何获取某个政治家的基本信息。
import votesmart
# 1. 设置你的 API 密钥
# 请将 'YOUR_API_KEY' 替换为你从 VoteSmart 网站获取的真实密钥
VOTESMART_API_KEY = 'YOUR_API_KEY'
votesmart.apikey.setKey(VOTESMART_API_KEY)
# 2. 获取政治家信息
# 我们以美国前总统 Barack Obama 为例,他的 ID 是 5322
# 你可以在 VoteSmart 网站上搜索人物来找到他们的 ID
politician_id = 5322
try:
# 获取政治家的基本简介
bio = votesmart.getBio.getBio(politician_id)
if bio:
print("--- 政治家简介 ---")
print(f"姓名: {bio.firstName} {bio.lastName}")
print(f"所属党派: {bio.party}")
print(f"职务: {bio.officeName}")
print(f"州: {bio.state}")
print(f"简介: {bio.background}\n")
else:
print("未找到该政治家的简介。")
# 获取政治家的职位历史
offices = votesmart.getBio.getOffices(politician_id)
if offices:
print("--- 职位历史 ---")
for office in offices:
print(f"- {office.officeName}, {office.state}, {office.startDate} 至 {office.endDate}")
# 获取最近的投票记录
# 首先需要找到某个特定法案的 ID
bills = votesmart.votes.getBillsByCategory('house', 115, 1) # 115届国会,众议院,第1类别的法案
if bills:
# 取第一个法案作为示例
sample_bill = bills[0]
print(f"\n--- 法案 '{sample_bill.name}' 的投票记录 ---")
votes = votesmart.votes.getBillVotes(sample_bill.billId)
if votes:
for vote in votes:
print(f"代表 {vote.name} ({vote.party}) 的投票: {vote.action}")
else:
print("该法案没有投票记录。")
except votesmart.VoteSmartError as e:
print(f"发生错误: {e}")
print("请检查你的 API 密钥是否正确,或者网络连接是否正常。")
如何运行代码:
- 将上面的代码保存为一个文件,
test_votesmart.py。 - 记得将
'YOUR_API_KEY'替换成你自己的密钥。 - 在命令行中运行该文件:
python test_votesmart.py
第四步:常见问题和故障排除
问题1:VoteSmartError: No API key has been set
原因: 你没有在代码中设置 API 密钥,或者密钥设置失败。
解决方法: 确保你已经获取了 API 密钥,并且在代码中正确调用了 votesmart.apikey.setKey('YOUR_API_KEY')。
问题2:pip install python-votesmart 失败或速度很慢
原因: 可能是网络问题,或者 pip 的源(source)配置在国外。 解决方法:
- 使用国内镜像源(推荐): 使用清华、阿里等镜像源可以大大提高下载速度。
# 使用清华镜像源 pip install python-votesmart -i https://pypi.tuna.tsinghua.edu.cn/simple
- 检查网络: 确保你的网络连接正常,能够访问 PyPI 官方源。
问题3:ModuleNotFoundError: No module named 'votesmart'
原因: 包没有成功安装,或者你正在使用一个不同的 Python 环境。 解决方法:
- 重新执行安装命令
pip install python-votesmart。 - 如果你使用的是虚拟环境(如
venv或conda),请确保你已经激活了该环境,然后在激活后的环境中安装包。 - 检查你运行
python命令的路径是否与安装包的 Python 路径一致,可以使用which python(macOS/Linux) 或where python(Windows) 来查看。
希望这份详细的指南能帮助你成功安装和使用 python-votesmart!
