FreeAstroAPI LogoFreeAstroAPI

French Ephemeris 面向 Python 与 Rust 的开源星历

开源。商业使用只需一次性购买200 美元授权。

专业占星师和开发者都在使用

提供 Linux、macOS 和 Windows 的 Python 3.9+ wheels。AGPL-3.0 下免费使用。

完整星盘计算快于 Swiss Ephemeris(15 µs 对 55 µs,Python)
快 3.6 倍
涵盖 Swiss Ephemeris 的全部宫位制,另含高葛林扇区
24 种宫位制
Lahiri、Raman、Krishnamurti 等,适用于吠陀占星应用
46 种阿亚南萨

星盘速度于 2026 年 10 月在 Apple M4 上按逐个天体调用测得;批量 API 快 7 至 9 倍。每个数字的方法、样本量和复现命令见 引擎报告.

为什么选择 French Ephemeris

高精度、高速度,可直接用于生产环境。

比 Swiss Ephemeris 更精确

行星、太阳和月亮直接取自 NASA/JPL DE441 与 DE442 系数,逐位复制。公元 0 至 1550 年的物理位置与 JPL Horizons 相差不超过 0.0005″。

熟悉的 pyswisseph 风格 API

swe_compat 模块保留了占星代码常用的函数名、标志位和返回结构,例如 calc_ut、houses、set_sid_mode 和 fixstar2。

天生线程安全

没有可变的全局状态。恒星黄道模式、观测者和 Delta T 设置按线程和 asyncio 任务隔离,并发的 Web 请求不会互相串改设置。

单次调用和批量都很快

在 Python 中逐次调用每秒约 50 万个位置,通过释放 GIL 的 NumPy 批量 API 每秒约 450 万个。

你可以构建什么

西方占星、吠陀占星和 KP 应用都依赖同样的基础模块。French Ephemeris 全部提供。

本命盘应用

任意日期和地点的行星、宫位、相位、月交点和莉莉丝,支持用户需要的宫位制。

吠陀与 KP 应用

46 种阿亚南萨下的恒星黄道位置,包括 Lahiri、Raman 和 Krishnamurti,可直接用于 kundli、大运和分盘。

合盘与配对

微秒级计算两张星盘并进行比较,让用户浏览或搜索时实时匹配。

行运提醒

通过搜索找到精确相位、换座、停滞和回归,用于推送通知和时间线。

月亮与农历日历

按用户所在地计算新月、满月、月相、日月食以及升落时间。

大规模每日运势

NumPy 批量 API 每秒计算数百万个位置,为每个星座每天生成内容。

移动应用

用 Python 或 Rust 后端为 iOS 和 Android 应用提供计算,或将 Rust 内核与 2 MB 的移动版数据集(1800 至 2400 年)一起打包进应用,离线计算星盘。

  • 行星、太阳和月亮
  • 公元前 13198 至公元 17190 年(扩展数据包)
  • 月交点、莉莉丝、拱点
  • 8,969 颗恒星(全部肉眼可见)
  • 凯龙星和 326 颗小行星
  • 日月食(与 NASA 日月食典一致)与掩星
  • 升落与偕日现象

French Ephemeris 与 Swiss Ephemeris 对比

French Ephemeris 是依据公开资料独立实现的。在 1800 至 2100 年的星盘上,它与 Swiss Ephemeris 2.10 的差异:太阳不超过 0.07″,月亮不超过 0.83″,8,400 个样本中没有任何星座或逆行状态的变化。

French Ephemeris 领先 9 项,Swiss Ephemeris 领先 3 项,持平 3 项。

French Ephemeris 与 Swiss Ephemeris 对比
French EphemerisSwiss Ephemeris
行星数据JPL DE441 与 DE442 逐位一致,公元 0 至 1550 年与 JPL Horizons 相差不超过 0.0005″JPL 数据的压缩副本
速度,10 天体星盘15 微秒55 微秒
速度,单次调用每秒 502,000 个位置每秒 313,000 个位置
批量计算NumPy 下每秒 446 万个位置,不受 GIL 限制每个天体、每个时刻调用一次
线程设置按线程和 async 任务隔离设置由整个进程共享
1800 至 2400 年的最小数据持平2.03 MB(移动版数据集)2.12 MB
宫位制持平2424
恒星8,969 颗:所有肉眼可见的恒星(V ≤ 6.5),Hipparcos 2007 位置约 1,200 个天体
阿亚南萨46 种,另可自定义47 种,另可自定义
语言Python、Rust 和 JavaScript(npm)C,并有多种语言绑定
历史2026 年首次公开发布自 1997 年起的行业标准
授权AGPL-3.0,或每家公司一次性 200 美元AGPL,或 700 瑞士法郎的专业授权

速度在 Apple M4 上对比 pyswisseph 2.10.3.2 测得。每个数字的方法、样本量和复现命令见 引擎报告.

Swiss Ephemeris 是 Astrodienst AG 的产品。French Ephemeris 与 Astrodienst 无关联,也未获其认可。

免费开源,或一份简单的授权

AGPL-3.0

免费

适用于开源项目、研究、教学,以及任何遵守 AGPL 的产品,包括公开你通过网络提供的修改版本的源代码。

商业授权

USD 200 一次性,按公司计

适用于闭源应用、API 和 SaaS。不限产品、开发者和终端用户数量,包含所有未来版本。

通过 Stripe 安全支付。发票会发送到你的邮箱,授权证书将在两个工作日内送达。如有疑问或需银行转账: [email protected].

French Ephemeris 常见问题

French Ephemeris 是什么?

French Ephemeris 是一个高精度、高性能的开源星历与占星几何库,用 Rust 编写并提供 Python 绑定。它基于 NASA/JPL 星历(DE441/DE442)计算行星、月亮和小天体的位置,还提供宫位、阿亚南萨、月交点与莉莉丝、恒星、升落时间、日月食、掩星和偕日现象。

French Ephemeris 能替代 pyswisseph 或 Swiss Ephemeris 吗?

对大多数代码来说可以。frenchephemeris.swe_compat 模块复刻了 pyswisseph 风格的调用,例如 calc_ut、houses、set_sid_mode 和 fixstar2,通常只需修改 import。在 1800 至 2100 年的星盘上,它与 Swiss Ephemeris 2.10 的差异:太阳不超过 0.07″,月亮不超过 0.83″,8,400 个样本中没有任何星座或逆行状态的变化。它与 Swiss Ephemeris 或 Astrodienst 无关联。

French Ephemeris 的精度如何?

它直接读取 JPL DE441 和 DE442 系数,因此公元 0 至 1550 年的物理位置与 JPL Horizons 相差 0.0005″ 以内,1550 年之后(内行星、太阳和月亮)相差 0.13″ 以内。它的日月食搜索能找到 NASA 五千年日月食典中公元 0 至 2400 年的全部日食和月食,没有多余事件,也没有类型错误。方法和样本量发布在 GitHub 的引擎报告中。

French Ephemeris 可以免费用于商业用途吗?

可以,在 GNU AGPL-3.0 下使用,前提是遵守其条件,包括公开你通过网络提供的修改版本的源代码。如果你希望产品保持闭源,商业授权为每家公司一次性 200 美元,涵盖所有未来版本和无限终端用户。

它需要哪些数据文件?

起步时不需要:安装包内置了公元 0 至 2400 年的精简数据集(行星与 JPL 相差不超过 0.007″,月亮不超过 0.4″)。运行 python -m frenchephemeris.packs download 可添加 1800 至 2401 年的 JPL 精确数值(约 69 MB,经 SHA-256 校验),或使用 --set full 获取公元前 3 年至公元 2581 年的数据(256 MB)。可选数据包可将范围扩展到公元前 13199 年至公元 17190 年,并添加 326 颗常用小行星。

它是线程安全的吗?

是的。引擎不可变,没有可变的全局状态。恒星黄道模式、站心位置和 Delta T 设置按线程和 asyncio 任务隔离,并发请求不会改变彼此的结果。批量调用会释放 Python GIL,并在多个核心上运行。

支持哪些平台和语言?

Python 3.9 及以上,提供 Linux(x86_64 和 aarch64)、macOS(Intel 和 Apple Silicon)以及 Windows 的预编译 wheels。Rust crate fe-core 位于同一仓库,可直接在 Rust 中使用。

使用 FreeAstroAPI 需要 French Ephemeris 吗?

不需要。FreeAstroAPI 的所有计算已经运行在 French Ephemeris 上。想在自己的应用或服务器内计算位置时使用这个库;想通过 HTTP 获取现成的星盘、解读和报告时使用 API。

开始使用 French Ephemeris

从 PyPI 安装,或者跳过配置,通过 FreeAstroAPI 的 REST 接口调用同一个引擎。