本页面假设您熟悉终端的使用,并乐于学习如何使用包管理器。如果您是初学者,只想尽快开始使用 SciPy,请查看初学者安装指南!
安装 SciPy 的推荐方法取决于您首选的工作流程。常见的工作流程大致可以分为以下几类:
uv
, pixi
) (推荐给新用户)pip
, conda
) (传统工作流程)uv
安装#这是一个使用 Python 包管理器 uv
设置项目以使用 SciPy 的分步指南。
uv
,按照 uv
文档中的说明进行操作。通过在终端中执行以下操作,在新子目录中创建一个新项目
uv init try-scipy
cd try-scipy
第二个命令将目录更改为您的项目目录。
将 SciPy 添加到您的项目中
uv add scipy
如果您尚未安装 Python,这将自动安装 Python!
您可以采用相同的方式安装其他 Python 库,例如:
uv add matplotlib
尝试使用 SciPy!
uv run python
这将启动一个 Python 解释器会话,您可以在其中 import scipy
。
请参阅SciPy 用户指南中的后续步骤。
在重启计算机后,您需要导航到您的 try-scipy
项目目录,并执行 uv run python
以返回到可以导入 SciPy 的 Python 解释器。要执行 Python 脚本,可以使用 uv run myscript.py
。
在uv 项目工作指南中了解更多信息。
pixi
安装#如果您使用非 Python 包,您可能更喜欢将 SciPy 安装为 Conda 包,以便您可以对 PyPI(Python 包索引)上不可用的包使用相同的工作流程。Conda 可以管理任何语言的包,因此您可以使用它来安装 Python 本身、编译器和其他语言。
使用包管理工具 pixi
从 conda-forge 安装 SciPy 的步骤与 uv
的步骤非常相似
pixi
,按照 pixi
文档中的说明进行操作。在新子目录中创建一个新项目
pixi init try-scipy
cd try-scipy
将 SciPy 添加到您的项目中
pixi add scipy
尝试使用 SciPy!
pixi run python
请参阅SciPy 用户指南中的后续步骤。
在基于项目的工作流程中,一个项目是一个目录,其中包含描述项目的清单文件、描述项目确切依赖项的锁定文件以及项目(可能多个)的环境。
相比之下,在基于环境的工作流程中,您将包安装到环境中,您可以从任何目录激活和停用该环境。这些工作流程已建立完善,但缺乏基于项目的工作流程的某些可重现性优势。
pip
安装#使用 venv
创建并激活虚拟环境。
使用 pip
安装 SciPy
python -m pip install scipy
conda
安装#Miniforge 是安装 conda
和 mamba
(两个基于 Conda 的环境管理器)的推荐方法。创建环境后,您可以按如下方式从 conda-forge 安装 SciPy
conda install scipy # or
mamba install scipy
系统包管理器可以安装最常见的 Python 包。它们为整个计算机安装包,通常使用较旧的版本,并且没有那么多可用的版本。它们不是推荐的安装方法。
使用 apt-get
sudo apt-get install python3-scipy
使用 dnf
sudo dnf install python3-scipy
macOS 没有预安装的包管理器,但您可以安装 Homebrew 并使用它来安装 SciPy(和 Python 本身)
brew install scipy
温馨提示:从源代码构建 SciPy 可能是一项非平凡的任务。如果您的平台可以通过上述方法之一获得二进制文件,我们建议使用二进制文件代替。有关如何从源代码构建的详细信息,请参阅 SciPy 文档中的从源代码构建指南。
静态类型存根可通过 PyPI 和 conda-forge 上的单独软件包 scipy-stubs
获得。您还可以通过 PyPI 上的 scipy-stubs[scipy]
extra 或 conda-forge 上的 scipy-typed
包,将 SciPy 和 scipy-stubs
作为单个包安装。要获取 SciPy 的特定版本 x.y.z
(例如 1.14.1
),您应该安装版本 x.y.z.*
,例如
uv add "scipy-stubs[scipy]==1.14.1.*" # or
pixi add "scipy-typed=1.15.0.*" # or
python -m pip install "scipy-stubs[scipy]" # or
conda install "scipy-typed>=1.14"
请将有关静态类型支持的问题定向到 scipy-stubs
GitHub 存储库。