Astropy 安装指南:从隔离环境搭建到源码构建与每日开发版
科学计算科研数据分析【免费下载链接】astropyAstronomy and astrophysics core library项目地址https://gitcode.com/gh_mirrors/as/astropy点击查看免费下载本篇指南以 Astropy 官方安装文档 docs/install.rst 为核心脉络完整讲解如何从零搭建隔离的 Python 环境、通过pip/conda安装 Astropy 及其依赖矩阵、验证安装、从源码构建以及安装 nightly 开发版。读完本文你将掌握一套可复现、可排查的 Astropy 环境搭建方案并理解pip与conda两种包管理方式各自的适用场景与注意事项。概览第一步永远是隔离环境安装 Astropy 的第一步是确保你拥有一个与系统 Python 完全隔离的 Python 环境。这一点至关重要Astropy 依赖众多NumPy、PyERFA、PyYAML、packaging 等如果直接把依赖装进系统 Python很容易因为版本冲突意外破坏系统环境。因此官方安装文档 docs/install.rst 开篇就强调隔离并将这条原则贯穿始终。本安装指南官方推荐使用由miniforge提供的conda包管理器。选择它的理由很直接流行且对所有平台Linux / macOS / Windows支持良好安装和上手简单对新用户友好便于安装最新版本的 Python在 docs/development/quickstart.rst 的开发环境章节中同样强调了便于安装不同 Python 版本以用于测试这一点。如果你已经拥有一个基于miniforge的 Python 环境可以直接跳到下面的「安装 Astropy」一节。对于更有经验的用户备选方案是使用 Python 标准库自带的venv模块等虚拟环境管理器。社区有大量资料可以帮你完成这类环境的搭建原则相同环境必须与系统 Python 隔离。注意不建议与 Anaconda / miniconda 的 defaults 通道混用官方明确不推荐在已有的miniconda或Anaconda Python发行版中使用 AstropyAnaconda Inc. 在defaults通道提供的 astropy 包可能版本过旧且这些发行版在大规模组织内使用可能需要商业许可。请按本文所述使用miniforge其默认远程软件源为社区主导的conda-forge通道。环境就绪后你可以用pip或conda安装 Astropy。官方文档选择以pip为主进行讲解因为用pip安装可选依赖更简单当然完全可以用conda完成同样的工作。安装 miniforge安装 Python 的第一步是安装miniforge。它会为你提供conda包管理器并且默认把远程软件仓库指向社区主导的conda-forge通道。安装完成后在一个新终端Windows 下为miniforge Prompt中运行以下命令验证安装是否成功conda list如果命令能正常输出已安装的软件包列表说明conda已就绪。注意 Windows 用户应始终使用miniforge Prompt而非普通 PowerShell / CMD以确保conda命令在 PATH 中可用。创建 Python 环境打开终端UNIX 系系统或 miniforge PromptWindows创建并激活一个专用于 Astropy 的虚拟环境conda create --channel conda-forge --name astropy python conda activate astropy参数说明--channel conda-forge显式指定从 conda-forge 通道拉取包与 miniforge 默认配置一致同时避免误用其他通道中可能过旧的 astropy 包--name astropy环境名称可以改成任意你喜欢的名字python不指定具体版本时conda 会安装当前可用的最新稳定版 Python。如果你想锁定版本例如复现特定环境可以写成python3.12这样的形式。创建完成后环境立即处于激活状态。但请注意以后每次打开新终端都需要重新执行conda activate astropy才能进入该环境。这是 conda 环境的常见陷阱也是新手最容易遗漏的一步。安装 Astropy使用pip或conda安装 Astropy 均受官方支持两种方式都能正常工作。但有一个重要警告警告在 conda 环境中混用安装方式有风险一旦你用conda创建好基础 Python 环境此后尽量固定使用同一种方法安装新包。conda无法感知用pip安装的包在conda install时可能直接覆盖overwrite它们导致环境状态不一致。使用 pip 安装要安装 Astropy 以及你所选择的依赖组合运行以下命令之一python -m pip install astropy # 仅安装最小必需依赖 python -m pip install astropy[recommended] # 安装推荐依赖 python -m pip install astropy[all] # 安装全部可选依赖三种安装档位的含义在 pyproject.toml 中有精确定义默认不带 extra只安装[project.dependencies]中声明的最小必需依赖——astropy-iers-data、configobj、numpy、packaging、pyerfa、PyYAML[recommended]在最小依赖之上追加scipy、matplotlib、narwhals以启用更多模块功能与绘图能力[all]聚合recommended、ipython、pandas、jupyter以及全部剩余可选运行时依赖h5py、pyarrow、beautifulsoup4、bleach、sortedcontainers、pytz、jplephem、mpmath、asdf-astropy、bottleneck、fsspec、s3fs、certifi、uncompresspy等。绝大多数情况下pip会安装一个预编译好的 wheel 包无需本地编译。只有在你使用非常规平台时pip才会回退到从源码安装此时机器上必须装有可用的 C 编译器安装才能成功详见下文「从源码构建」。警告切勿使用sudo或任何提权方式安装官方明确警告不要用sudo pip install安装 Astropy 或其他包。提权安装会把包写入系统目录、绕过环境隔离还可能破坏系统级 Python应当始终在激活的虚拟环境中以普通用户身份安装。使用 conda 安装安装 Astropy 及最小依赖集conda install --channel conda-forge astropy安装推荐依赖SciPy 与 Matplotlibconda install --channel conda-forge scipy matplotlib安装全部可选依赖conda install --channel conda-forge ipython jupyter dask h5py pyarrow \ beautifulsoup4 html5lib bleach pandas sortedcontainers pytz jplephem mpmath \ asdf-astropy bottleneck fsspec s3fs certifi这一串包名与 pyproject.toml 中[all]分组含jupyter、pandas分组所覆盖的组件基本对应jupyter/ipython用于 notebook 交互与Table.show_in_notebookdask/fsspec/s3fs用于云端与大数据场景pyarrow用于 Parquet 读写h5py用于 HDF5 读写pandas用于 DataFrame 互转asdf-astropy用于可移植序列化等。若你的conda环境中已包含这些包可跳过对应条目。测试安装是否成功安装完成后可以用 Astropy 官方测试套件验证安装版本是否正常。参见仓库内 docs/development/testguide.rst 的「Running tests on an installed astropy」一节python -m pip install astropy[test] pytest --pyargs astropy其中astropy[test]会安装测试所需依赖pytest、coverage、hypothesis、pytest-xdist、pytest-doctestplus等完整清单见 pyproject.toml 的[project.optional-dependencies].test而--pyargs astropy会从已安装的包而非源码目录中发现并运行测试因此这条命令应在任何非 Astropy 源码目录的位置执行。依赖要求严格必需依赖Astropy 有以下严格必需的依赖即不安装就无法导入依赖最低版本Python3.12 或更高NumPy2.0 或更高PyERFA2.0.1.3 或更高PyYAML6.0.1 或更高packaging25.0 或更高以上版本数字并非写死在文档里docs/install.rst使用|minimum_xxx_version|占位符由 docs/conf.py 在构建文档时动态读取 pyproject.toml 中声明的版本约束并自动替换。因此文档中展示的最低版本与实际包元数据永远保持一致。例如requires-python 3.12见 pyproject.toml直接决定了minimum_python_version的取值。同样地min_versions是从包元数据的Requirement中逐个解析numpy、pyerfa、matplotlib、scipy、packaging、pyyaml、ipython、pyarrow、fsspec、s3fs、asdf-astropy的版本约束生成的。特别推荐的依赖以下依赖虽非必需但官方特别推荐安装它们为多个模块提供核心功能SciPy最低 1.13为多个模块的各种功能提供底层支持如astropy.stats、astropy.convolution、astropy.modeling等Matplotlib最低 3.8.4提供绘图功能astropy.visualization在其基础上进行增强。按功能划分的可选依赖以下依赖仅在需要对应功能时才安装。Astropy 即使不装这些包也能正常导入缺少它们只会让相应功能不可用h5py读写 HDF5 格式的astropy.table.TableBeautifulSoup从 HTML 文件读取Tablehtml5lib配合 pandas 读取器从 HTML 文件读取Tablebleach在Table的 HTML 写入器关闭 HTML 转义时用于文本净化sanitizeipydatagrid在 Jupyter notebook 中以backendipydatagrid显示Table.show_in_notebookxmllint校验 VOTABLE XML 文件注意这是 Python 之外的命令行工具需在系统层面安装不属于 pip 包pandasTable与 pandasDataFrame之间的互转sortedcontainers为Table提供更快的SCEngine索引引擎某些情况下仍可能比默认索引引擎慢pytz指定和转换时区jplephem获取太阳系天体的 JPL 星历ephemerissetuptools用于发现 entry points从而将拟合器fitter注入astropy.modeling.fittingmpmath用于astropy.stats.poisson_conf_interval的kraft-burrows-nousek区间asdf-astropy最低 0.11.0将各种 Astropy 类序列化为可移植、分层、人类可读的表示bottleneck提升 sigma-clipping 等对含 NaN 数组做统计运算的功能性能certifi当 Python 无法定位系统上最新的根 CA 证书时用于从 HTTPS 或 FTPTLS 站点下载文件通常已作为requests的依赖随大多数 Python 安装附带pyarrow最低 16.0读写 Parquet 格式的Tablefsspec最低 2023.4.0无需下载整个文件即可访问远程 FITS 文件的子集s3fs最低 2023.4.0访问托管在 AWS S3 云存储中的文件。上述依赖在 pyproject.toml 的[all]分组中均有对应声明并带各自的最低版本约束与本列表一一对应。测试专用依赖以下包仅在运行测试时可选用pytest-xdist分布式并行测试pytest-mpl基于 Matplotlib 图件的测试比对objgraph仅在测试中用于检测引用泄漏reference leaksIPython最低 8.1.0测试Table的 notebook 界面coverage代码覆盖率测量skyfield测试太阳系坐标sgp4测试卫星位置tox自动化测试与文档构建。在 pyproject.toml 中test与test_all分组正是这些测试依赖的机器可读定义astropy[test]提供基础测试框架astropy[test_all]则额外聚合objgraph、skyfield、sgp4、array-api-strict、numpy-quaddtype以及astropy[all]。从源码构建如果你想基于源码构建 Astropy官方建议遵循 docs/development/quickstart.rst 中contributing_environment一节描述的开发环境搭建流程。注意你也可以直接从主仓库克隆而不必从自己的 fork 克隆git clone https://github.com/astropy/astropy.git cd astropy通常没有必要在本地构建文档——除非你在开发代码/文档或者处于无网络环境——因为 Astropy 的稳定版、最新版和历史版本文档都托管在 docs.astropy.org 上。源码构建的环境准备从源码构建需要在系统中准备可用的 C 编译器用于编译 Astropy 的 C 与 Cython 扩展Windows需要安装 Build Tools for Visual Studio注意不需要安装完整版 Visual StudiomacOS运行xcode-select --install安装命令行开发者工具Linux通常无需额外安装组件系统自带的 GCC 即可。在 pyproject.toml 的[build-system]中可以确认构建后端的需求setuptoolssetuptools_scm版本号从 git 派生cythonnumpyextension-helperspyerfaconfigobj构建后端为setuptools.build_meta。此外 setup.py 会通过extension_helpers.get_extensions()自动发现并注册各子包的 C/Cython 扩展模块并为使用 NumPy C-API 的扩展强制指定NPY_2_0_API_VERSION。推荐的做法是照搬 quickstart 的隔离开发环境流程conda create -n astropy-dev python graphviz conda activate astropy-dev python -m pip install --editable . --group dev_all说明graphviz是构建文档所需的系统级包--editable .可编辑安装让源码改动即时生效--group dev_all对应 pyproject.toml 中定义的 PEP 735 依赖组dev_all它聚合了dev含recommended、test、docs、typing四组、dataframe、image_tests、astropy[test_all]与tox一次性装齐构建、测试、文档与类型检查所需的一切。构建完成后验证导入与测试python -c import astropy; astropy.system_info() pytest astropy/coordinates # 先跑单个子包 pytest # 或跑全部测试测试源码构建在源码检出source checkout中运行测试最简便的方式是使用toxtox.ini 定义了丰富的测试环境矩阵tox -e test-alldepstest-alldeps环境会安装all与test两组可选依赖见 tox.ini 的extras配置覆盖全部可选依赖 测试依赖的组合。tox 矩阵中还包含test-recdeps推荐依赖、test-oldestdeps所有直接依赖的最老支持版本用于验证最低版本声明、test-devdeps各关键依赖的最新开发版、test-cov覆盖率、test-mpl380固定 Matplotlib 3.8.4等环境完整列表可运行tox -l -v查看。如果你希望对测试过程有更多控制可以参考 docs/development/testguide.rst 中描述的pytest替代运行方式例如pytest --pyargs astropy、pytest -n auto并行等。安装预构建的开发版nightly大多数夜晚Astropy 项目都会编译一份开发版快照nightly。如果你希望在不自行构建的前提下针对开发版 Astropy 进行测试可以安装这些快照。可用快照清单发布在 pypi.anaconda.org 的 astropy 仓库中。使用pip安装 nightly 的命令python -m pip install --upgrade --extra-index-url https://pypi.anaconda.org/astropy/simple astropy --pre这条命令的两个关键参数--extra-index-url额外指定一个 pip 软件源——pypi.anaconda.org上的astropy/simple索引nightly 快照即存放于此--pre允许pip安装预发布版本在此即.dev开发版。--upgrade则确保你拿到的是最新构建的快照。安装后同样可以用上文「测试安装是否成功」中的方式先python -m pip install astropy[test]再在非源码目录运行pytest --pyargs astropy验证该 nightly 版本是否正常。小结安装决策速查场景推荐操作刚接触 Python / 跨平台安装 miniforge →conda create --channel conda-forge --name astropy python→conda activate astropy普通科研使用python -m pip install astropy[recommended]含 SciPy、Matplotlib需要全部可选功能python -m pip install astropy[all]或按文中的 conda 命令逐项安装验证已安装版本python -m pip install astropy[test]后在非源码目录运行pytest --pyargs astropy开发 / 改源码克隆主仓库按 docs/development/quickstart.rst 建astropy-dev环境python -m pip install --editable . --group dev_all用tox -e test-alldeps跑测试抢先体验开发版功能python -m pip install --upgrade --extra-index-url https://pypi.anaconda.org/astropy/simple astropy --pre核心要点可以归纳为三条环境必须隔离用 miniforge/conda 或 venv、pip 与 conda 二选一并从一而终不要混用导致覆盖、按需选择依赖档位最小 / 推荐 / 全部并善用pytest --pyargs astropy对任何安装方式的结果进行独立验证。赞分享科学计算科研数据分析【免费下载链接】astropyAstronomy and astrophysics core library项目地址https://gitcode.com/gh_mirrors/as/astropy点击查看免费下载相关推荐Anki 源码开发指南从构建环境搭建到每日开发工作流Anki 源码开发指南从构建环境搭建到每日开发工作流 本篇指南面向希望从源码编译、运行并参与开发的工程师系统讲解 Anki智能间隔重复记忆卡片程序的开发教育Apache Airflow 从源码安装与开发环境搭建指南Apache Airflow 从源码安装与开发环境搭建指南 前言 Apache Airflow 是一个功能强大的工作流编排平台本文将为开发者详细介绍如何从源码后端任务调度工作流自动化数据编排批处理数据工程流程编排SurrealDB 的 Nix 构建与开发环境指南从源码构建、Flake 安装到开发 ShellSurrealDB 的 Nix 构建与开发环境指南从源码构建、Flake 安装到开发 Shell SurrealDB 官方仓库提供了完整的 Nix 支持 f数据库后端分布式数据库文档数据库图数据库嵌入式数据库KV存储上一篇Unlock Music 完整指南浏览器里免费解锁 ncm、qmc、kgm 加密音乐的开源工具下一篇FMA 音乐数据集快速上手指南10 万首免费音频数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考