569 lines
14 KiB
Markdown
569 lines
14 KiB
Markdown
# 安装指南
|
||
|
||
## 目录
|
||
|
||
- [快速安装(5 分钟)](#快速安装5-分钟)
|
||
- [详细步骤](#详细步骤)
|
||
- [1. 安装 Python](#1-安装-python)
|
||
- [2. 安装 Python 依赖](#2-安装-python-依赖)
|
||
- [3. 安装 C 编译器(可选)](#3-安装-c-编译器可选)
|
||
- [4. 安装 CMake(可选)](#4-安装-cmake可选)
|
||
- [5. 编译 C 引擎](#5-编译-c-引擎)
|
||
- [6. 安装 VisPy(可选)](#6-安装-vispy可选)
|
||
- [验证安装](#验证安装)
|
||
- [平台对照表](#平台对照表)
|
||
- [常见问题](#常见问题)
|
||
|
||
---
|
||
|
||
## 快速安装(5 分钟)
|
||
|
||
```bash
|
||
# 1. 安装 Python 依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 2. 运行案例验证
|
||
cd Dynamics
|
||
py -3 examples/case01/run_dynamics.py --no-plot
|
||
```
|
||
|
||
或手动逐个安装:
|
||
|
||
```bash
|
||
pip install numpy pyyaml tqdm matplotlib
|
||
```
|
||
|
||
看到 `[run] 完成!输出目录: ...` 即安装成功。
|
||
|
||
---
|
||
|
||
## 详细步骤
|
||
|
||
### 1. 安装 Python
|
||
|
||
**要求:Python 3.9 或更高版本。**
|
||
|
||
| 系统 | 安装方式 |
|
||
|------|---------|
|
||
| **Windows** | 从 [python.org](https://www.python.org/downloads/) 下载安装包,安装时勾选 **"Add Python to PATH"** |
|
||
| **macOS** | `brew install python` 或从 python.org 下载 |
|
||
| **Linux (Ubuntu/Debian)** | `sudo apt install python3 python3-pip` |
|
||
| **Linux (Fedora)** | `sudo dnf install python3 python3-pip` |
|
||
| **Linux (Arch)** | `sudo pacman -S python python-pip` |
|
||
|
||
验证:
|
||
|
||
```bash
|
||
py -3 --version # Windows
|
||
# 或
|
||
python3 --version # Linux/macOS
|
||
```
|
||
|
||
### 2. 安装 Python 依赖
|
||
|
||
```bash
|
||
# 一键安装所有必需 + 推荐依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 或手动逐个安装
|
||
pip install numpy pyyaml tqdm
|
||
|
||
# 绘图(可选,用于生成轨迹图)
|
||
pip install matplotlib
|
||
|
||
# 根据你的 pip 命令,可能是 pip3:
|
||
pip3 install numpy pyyaml tqdm matplotlib
|
||
```
|
||
|
||
> 如果遇到网络慢,使用国内镜像:
|
||
> ```bash
|
||
> pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy pyyaml tqdm matplotlib
|
||
> ```
|
||
|
||
### 3. 安装 C 编译器(可选)
|
||
|
||
> 仅当你想**编译 C/C++ 引擎**时才需要。如果只用默认的 Python 引擎可以跳过。
|
||
|
||
#### Windows — 下载安装 MSYS2 + MinGW64
|
||
|
||
MSYS2 是一个在 Windows 上提供 Linux 风格开发环境的软件包集合,
|
||
内含 MinGW64 编译器(gcc、g++、gfortran 等)。
|
||
|
||
##### 步骤 1:下载 MSYS2
|
||
|
||
访问 [msys2.org](https://www.msys2.org/),点击页面上的 **"msys2-x86_64-…….exe"** 下载安装包。
|
||
|
||
> 国内用户如果下载慢,可尝试镜像:
|
||
> - 清华大学: https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/msys2-x86_64-latest.exe
|
||
> - 中科大: https://mirrors.ustc.edu.cn/msys2/distrib/msys2-x86_64-latest.exe
|
||
|
||
##### 步骤 2:安装 MSYS2
|
||
|
||
运行下载的安装包:
|
||
|
||
1. 一路点 **"Next"**(下一步)
|
||
2. 安装路径保持默认:`C:\msys64`
|
||
3. 勾选 **"Run MSYS2 now"**(立即运行),点 Finish
|
||
|
||
##### 步骤 3:安装 MinGW64 编译器
|
||
|
||
安装完成后会弹出 **MSYS2 UCRT64 终端**(黑窗口)。在终端中执行:
|
||
|
||
```bash
|
||
pacman -Syu
|
||
```
|
||
|
||
> 这步会更新 MSYS2 自身。更新完毕后终端可能自动关闭,请从开始菜单重新打开 **"MSYS2 UCRT64"**。
|
||
|
||
然后安装编译器:
|
||
|
||
```bash
|
||
pacman -S mingw-w64-ucrt-x86_64-gcc
|
||
```
|
||
|
||
安装 g++(可选,编译 C++ 引擎时需要):
|
||
|
||
```bash
|
||
pacman -S mingw-w64-ucrt-x86_64-gcc
|
||
```
|
||
|
||
安装 gfortran(可选,编译 Fortran 引擎时需要):
|
||
|
||
```bash
|
||
pacman -S mingw-w64-ucrt-x86_64-gcc-fortran
|
||
```
|
||
|
||
安装 make(可选,直接用 Makefile 编译时需要):
|
||
|
||
```bash
|
||
pacman -S make
|
||
```
|
||
|
||
> 如果安装时提示选择软件包版本,直接回车选默认即可。
|
||
|
||
##### 步骤 4:添加环境变量
|
||
|
||
MSYS2 安装完成后,需要把编译器所在目录添加到系统的 **PATH** 环境变量中,这样在 CMD 或 PowerShell 中直接输入 `gcc` 就能调用。
|
||
|
||
**操作步骤:**
|
||
|
||
1. 打开 **系统属性** → **高级** → **环境变量**
|
||
- 快捷键:<kbd>Win</kbd> + <kbd>R</kbd>,输入 `sysdm.cpl`,回车 → 高级 → 环境变量
|
||
- 或:右键"此电脑" → 属性 → 高级系统设置 → 环境变量
|
||
|
||
2. 在 **"系统变量"** 列表中找到 `Path`,选中后点 **"编辑"**
|
||
|
||
3. 点 **"新建"**,添加以下路径:
|
||
|
||
```
|
||
C:\msys64\ucrt64\bin
|
||
```
|
||
|
||
> 如果安装时修改了路径,请替换为实际安装路径。
|
||
|
||
4. 点 **"确定"** 关闭所有对话框
|
||
|
||
##### 步骤 5:验证安装
|
||
|
||
打开一个新的 **CMD** 或 **PowerShell** 窗口(不是 MSYS2 终端),运行:
|
||
|
||
```bash
|
||
gcc --version
|
||
```
|
||
|
||
如果显示类似以下信息,说明安装成功:
|
||
|
||
```
|
||
gcc.exe (Rev13, Built by MSYS2 project) 15.2.0
|
||
Copyright (C) 2025 Free Software Foundation, Inc.
|
||
```
|
||
|
||
如果提示 `'gcc' 不是内部或外部命令`,说明环境变量未生效:
|
||
- 检查是否添加了正确的路径(`C:\msys64\ucrt64\bin`)
|
||
- 检查是否打开了**新的**命令行窗口(旧的窗口不识别新的环境变量)
|
||
- 重启电脑使环境变量生效
|
||
|
||
##### 步骤 6:编译 C 引擎
|
||
|
||
```bash
|
||
cd Dynamics\engines\c
|
||
gcc -O3 -march=native -o build\dynamics_c.exe main.c -lm
|
||
```
|
||
|
||
> 如果 MSYS2 安装在非默认路径,编译时可能需要指定完整路径:
|
||
> ```bash
|
||
> C:\msys64\ucrt64\bin\gcc -O3 -o build\dynamics_c.exe main.c -lm
|
||
> ```
|
||
|
||
##### 完整安装 MSYS2 + 编译器一键脚本
|
||
|
||
将以下内容保存为 `install_msys2.bat`,以管理员身份运行:
|
||
|
||
```batch
|
||
@echo off
|
||
echo 本脚本将安装 MSYS2 和 MinGW64 编译器
|
||
echo 请确保已下载 MSYS2 安装包: https://www.msys2.org/
|
||
echo.
|
||
|
||
REM 检查是否已安装
|
||
if exist "C:\msys64\ucrt64\bin\gcc.exe" (
|
||
echo 检测到 gcc 已安装,跳过编译安装步骤
|
||
goto check_path
|
||
)
|
||
|
||
echo 请手动运行 MSYS2 UCRT64 终端,执行以下命令:
|
||
echo.
|
||
echo pacman -Syu
|
||
echo pacman -S mingw-w64-ucrt-x86_64-gcc
|
||
echo.
|
||
echo 安装完成后重新运行此脚本。
|
||
pause
|
||
exit /b
|
||
|
||
:check_path
|
||
echo 检查环境变量...
|
||
echo %PATH% | findstr /C:"C:\msys64\ucrt64\bin" >nul
|
||
if %errorlevel% equ 0 (
|
||
echo 环境变量已设置
|
||
) else (
|
||
echo 警告: C:\msys64\ucrt64\bin 不在 PATH 中
|
||
echo 请手动添加:系统属性 → 高级 → 环境变量 → Path → 新建
|
||
)
|
||
echo.
|
||
gcc --version
|
||
echo.
|
||
echo 安装验证完成!
|
||
pause
|
||
```
|
||
|
||
#### macOS
|
||
|
||
```bash
|
||
# 安装 Xcode Command Line Tools(包含 clang)
|
||
xcode-select --install
|
||
|
||
# 或通过 Homebrew 安装 gcc
|
||
brew install gcc
|
||
```
|
||
|
||
#### Linux (Ubuntu/Debian)
|
||
|
||
```bash
|
||
sudo apt install gcc g++ gfortran
|
||
```
|
||
|
||
#### Linux (Fedora)
|
||
|
||
```bash
|
||
sudo dnf install gcc gcc-c++ gcc-gfortran
|
||
```
|
||
|
||
### 4. 安装 CMake(可选)
|
||
|
||
> 仅当你想用 **CMake 方式编译引擎** 时才需要。如果只用 gcc 直接编译可跳过。
|
||
|
||
#### 下载安装
|
||
|
||
| 系统 | 安装方式 |
|
||
|------|---------|
|
||
| **Windows** | ① 从 [cmake.org/download](https://cmake.org/download/) 下载 `.msi` 安装包 → 安装时勾选 **"Add CMake to system PATH"** <br> ② 或使用 winget:`winget install Kitware.CMake` |
|
||
| **macOS** | `brew install cmake` <br> 或从 cmake.org 下载 `.dmg` 安装包 |
|
||
| **Linux (Ubuntu/Debian)** | `sudo apt install cmake` |
|
||
| **Linux (Fedora)** | `sudo dnf install cmake` |
|
||
| **Linux (Arch)** | `sudo pacman -S cmake` |
|
||
|
||
#### 验证安装
|
||
|
||
打开新的终端,运行:
|
||
|
||
```bash
|
||
cmake --version
|
||
```
|
||
|
||
预期输出:
|
||
|
||
```
|
||
cmake version 3.29.0
|
||
CMake suite maintained and supported by Kitware (kitware.com/cmake).
|
||
```
|
||
|
||
> 如果提示 `'cmake' 不是内部或外部命令`,说明未添加到 PATH:
|
||
> - **Windows**:重新运行安装包,选择 **"Add CMake to the system PATH for all users"**
|
||
> - 或手动将 CMake 安装目录(如 `C:\Program Files\CMake\bin`)添加到环境变量
|
||
|
||
#### CMake 基本用法
|
||
|
||
CMake 采用 **源码外构建**(out-of-source build),所有编译中间文件生成在 `build/` 目录中,
|
||
不会污染源码目录。
|
||
|
||
```bash
|
||
# 1. 在项目根目录下配置(只需执行一次)
|
||
cd Dynamics
|
||
cmake -B build
|
||
|
||
# 2. 编译(--build 会自动调用 make / nmake / MSBuild)
|
||
cmake --build build
|
||
|
||
# 3. 只编译特定引擎
|
||
cmake --build build --target dynamics_c # C 引擎
|
||
cmake --build build --target dynamics_cpp # C++ 引擎
|
||
cmake --build build --target dynamics_f90 # Fortran 引擎
|
||
cmake --build build --target all-engines # 全部(默认)
|
||
|
||
# 4. 指定编译配置
|
||
cmake -B build -DCMAKE_BUILD_TYPE=Debug # Debug 模式(含符号表)
|
||
cmake -B build -DCMAKE_BUILD_TYPE=Release # Release 模式(-O3 优化)
|
||
|
||
# 5. 清理后重新编译
|
||
rm -rf build # Windows: rmdir /s /q build
|
||
cmake -B build
|
||
cmake --build build
|
||
```
|
||
|
||
#### CMake 在 Windows 上的注意事项
|
||
|
||
**情况 A:使用 MinGW(MSYS2)**
|
||
|
||
```bash
|
||
# 确保 gcc 在 PATH 中
|
||
gcc --version
|
||
|
||
# 配置时指定 MinGW Makefiles 生成器
|
||
cmake -B build -G "MinGW Makefiles"
|
||
|
||
# 编译
|
||
cmake --build build
|
||
|
||
# 或者用 ninja(如果安装了 ninja)
|
||
cmake -B build -G "Ninja"
|
||
cmake --build build
|
||
```
|
||
|
||
**情况 B:使用 Visual Studio**
|
||
|
||
如果安装了 Visual Studio,CMake 会自动检测并使用 MSVC 编译器:
|
||
|
||
```bash
|
||
# 在 "Developer Command Prompt for VS" 中运行
|
||
cmake -B build
|
||
cmake --build build --config Release
|
||
```
|
||
|
||
> 也可在 CMake GUI 中操作:
|
||
> 1. 打开 `cmake-gui`
|
||
> 2. 源码目录:`D:/.../Dynamics`
|
||
> 3. 构建目录:`D:/.../Dynamics/build`
|
||
> 4. 点 **Configure** → 选择 VC 或 MinGW → 点 **Generate**
|
||
> 5. 点 **Open Project** 在 VS 中打开,或直接点 **Build**
|
||
|
||
#### CMake 交叉编译
|
||
|
||
从任意平台编译到其他平台(需安装对应交叉编译器):
|
||
|
||
```bash
|
||
# 编译到 Windows(需 mingw-w64)
|
||
cmake -B build -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mingw.cmake
|
||
cmake --build build
|
||
|
||
# 编译到 Linux(需 Linux 交叉编译器)
|
||
cmake -B build -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-linux.cmake
|
||
cmake --build build
|
||
|
||
# 编译到 macOS(需 osxcross)
|
||
cmake -B build -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-macos.cmake
|
||
cmake --build build
|
||
```
|
||
|
||
### 5. 编译 C 引擎
|
||
|
||
#### 方式一:用 gcc 直接编译(最快)
|
||
|
||
```bash
|
||
cd engines/c
|
||
gcc -O3 -march=native -o build/dynamics_c.exe main.c -lm
|
||
```
|
||
|
||
#### 方式二:用 CMake(跨平台推荐)
|
||
|
||
```bash
|
||
# 配置
|
||
cmake -B build
|
||
|
||
# 只编译 C 引擎
|
||
cmake --build build --target dynamics_c
|
||
|
||
# 或编译全部引擎
|
||
cmake --build build
|
||
```
|
||
|
||
#### 方式三:用 Python 脚本
|
||
|
||
```bash
|
||
py -3 build_engines.py --target dynamics_c
|
||
```
|
||
|
||
#### 验证 C 引擎
|
||
|
||
```bash
|
||
# 确认可执行文件已生成
|
||
ls engines/c/build/dynamics_c.exe
|
||
|
||
# 直接运行测试
|
||
engines/c/build/dynamics_c.exe examples/case01/input examples/case01/output engines/c/param.json
|
||
```
|
||
|
||
> `ls` 在 Windows 上可用 `dir` 替代。
|
||
|
||
### 6. 安装 VisPy(可选)
|
||
|
||
> 仅当你想观看 **3D 动画** 时才需要。
|
||
|
||
```bash
|
||
pip install vispy PyQt5
|
||
```
|
||
|
||
验证:
|
||
|
||
```bash
|
||
py -3 -c "from vispy import app; print('VisPy 安装成功')"
|
||
```
|
||
|
||
---
|
||
|
||
## 验证安装
|
||
|
||
### 基础验证(Python 引擎)
|
||
|
||
```bash
|
||
cd Dynamics
|
||
py -3 examples/case01/run_dynamics.py --no-plot
|
||
```
|
||
|
||
预期输出末尾:
|
||
|
||
```
|
||
[run] 完成!输出目录: .../examples/case01/output
|
||
[run] 运行 python draw.py 查看动画。
|
||
```
|
||
|
||
### 完整验证(包括绘图)
|
||
|
||
```bash
|
||
py -3 examples/case01/run_dynamics.py
|
||
```
|
||
|
||
会在 `examples/case01/output/` 下生成:
|
||
- `trajectory.txt` — 完整轨迹
|
||
- `display.txt` — 动画数据
|
||
- `trajectory_plots.png` — 轨迹图
|
||
- `dynamics.log` — 计算日志
|
||
|
||
### C 引擎验证
|
||
|
||
```bash
|
||
# 修改 parameters.yaml 中 engine: python → engine: c
|
||
# 或用命令行指定
|
||
py -3 examples/case01/run_dynamics.py
|
||
```
|
||
|
||
预期输出中出现 `[C-engine]` 字样。
|
||
|
||
### 动画验证
|
||
|
||
```bash
|
||
py -3 draw.py examples/case01/output
|
||
```
|
||
|
||
会弹出一个 3D 窗口,显示原子运动。
|
||
|
||
---
|
||
|
||
## 平台对照表
|
||
|
||
| 组件 | Windows | macOS | Linux |
|
||
|------|---------|-------|-------|
|
||
| **Python** (必需) | python.org 安装包 | `brew install python` | `apt install python3` |
|
||
| **numpy** (必需) | `pip install numpy` | 同上 | 同上 |
|
||
| **PyYAML** (必需) | `pip install pyyaml` | 同上 | 同上 |
|
||
| **tqdm** (推荐) | `pip install tqdm` | 同上 | 同上 |
|
||
| **matplotlib** (可选) | `pip install matplotlib` | 同上 | 同上 |
|
||
| **C 编译器** (可选) | MSYS2 MinGW | Xcode CLT / brew gcc | `apt install gcc` |
|
||
| **CMake** (可选) | cmake.org / winget | `brew install cmake` | `apt install cmake` |
|
||
| **VisPy** (可选) | `pip install vispy PyQt5` | `pip install vispy PyQt5` | `pip install vispy` |
|
||
| **交叉编译→Windows** | — | `brew install mingw-w64` | `apt install mingw-w64` |
|
||
| **交叉编译→Linux** | MSYS2 中 `pacman -S mingw-w64-x86_64-linux-gnu` | `brew install x86_64-elf-gcc` | — |
|
||
| **交叉编译→macOS** | 需 osxcross | — | 需 osxcross |
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
### Q: `pip` 命令找不到?
|
||
|
||
Python 3 的包管理命令:
|
||
|
||
```bash
|
||
# Windows
|
||
py -3 -m pip install numpy
|
||
|
||
# Linux/macOS
|
||
python3 -m pip install numpy
|
||
```
|
||
|
||
### Q: `gcc` 命令找不到?
|
||
|
||
| 系统 | 解决 |
|
||
|------|------|
|
||
| **Windows (MSYS2)** | 将 `C:\msys64\ucrt64\bin` 添加到 PATH |
|
||
| **macOS** | 运行 `xcode-select --install` |
|
||
| **Linux** | `sudo apt install gcc` |
|
||
|
||
### Q: 运行 `draw.py` 闪退?
|
||
|
||
确保已安装 VisPy 和 PyQt5:
|
||
|
||
```bash
|
||
pip install vispy PyQt5
|
||
```
|
||
|
||
如果仍闪退,直接运行查看错误信息:
|
||
|
||
```bash
|
||
py -3 draw.py examples/case01/output
|
||
```
|
||
|
||
### Q: 网络慢,pip 安装失败?
|
||
|
||
使用国内镜像:
|
||
|
||
```bash
|
||
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy pyyaml tqdm matplotlib vispy PyQt5
|
||
```
|
||
|
||
### Q: 如何使用 C 引擎?
|
||
|
||
```yaml
|
||
# 1. 修改 examples/case01/input/parameters.yaml
|
||
engine: c
|
||
|
||
# 2. 先编译
|
||
cd engines/c
|
||
gcc -O3 -march=native -o build/dynamics_c.exe main.c -lm
|
||
|
||
# 3. 运行
|
||
cd ../..
|
||
py -3 examples/case01/run_dynamics.py
|
||
```
|
||
|
||
### Q: 如何安装旧版 Python?
|
||
|
||
项目要求 Python 3.9+。如果系统自带 Python 2(某些旧版 Linux),请单独安装 Python 3:
|
||
|
||
```bash
|
||
# Ubuntu
|
||
sudo apt install python3 python3-pip
|
||
|
||
# 然后用 python3 和 pip3 代替 python 和 pip
|
||
python3 examples/case01/run_dynamics.py
|
||
```
|