Pycharm是大部分科研新手会使用的软件,用来进行代码环境的配置很方便。不过配置起来还是有点麻烦,本人刚开始使用Pycharm的时候,也是费了很大的劲才学会配置和使用。这篇文章将告诉你怎么安装,如何配环境,怎么下载适合地理科研数据的软件包,以及如何管理代码。
一、Miniforge环境配置
1.为什么选择Miniforge?
之前大家常常使用Anaconda来配置虚拟环境,但其默认渠道现在有商业授权限制,对学校和科研环境不太友好。Miniforge走的是conda-forge社区通道,免费。大量服务于地理学领域的库,如GDAL、PROJ、Cartopy等在conda-forge上维护和更新及时。
此外,conda-forge自带mamba求解器,在装依赖链条复杂的包更快速,不容易卡在依赖求解上。被认为是conda的高速求解器。
2.如何安装Miniforge?
安装地址:Miniforge Releases
这里能够看到以往所有的发布版本,点击对应的release链接,直接跳转。

安装包:这里小编选择的是最新版的miniforge的安装包。如果有小伙伴想跳过上面的地址,可以直接进入小编列出的具体地址:
Release Release 26.3.2-3 · conda-forge/miniforge · GitHub

这里大家根据自己的电脑系统自行选择配置,本人的电脑为Windows 64位操作系统。下载好安装包,在D盘新建一个文件夹Installers保存"D:\Installers\Miniforge3-Windows-x86_64.exe"。
在这个文件夹内部再新建一个文件夹miniforge3,用来保存安装目录文件。
右击,按管理员身份运行打开,前面都是点next,没有什么特别要注意的,到install for时,注意选择Just me,如下:

继续,记得将安装目录文件放到新建好的D盘对应文件夹。

下一步,在高级的安装选择中,勾选创建快捷方式,其他三个不要勾选,点击安装,等待即可。

搜索miniforge prompt打开。依次输入:
bash
conda --version
mamba --version
python --version
结果如下,出现对应的版本号为安装成功:

二、科研环境创建
为更好服务于做科研,我们需要建立一个干净的科研环境。
继续在命令行输入,用于创建环境。为什么使用3.11版本,方便和多数Python库相容:
bash
mamba create -n geo311 python=3.11 -y
我在配置的时候出现了拒绝访问的问题,应该是权限不足,这时可以关掉程序,用管理员身份打开,输入:
bash
icacls "D:\Miniforge3" /grant "Promising_GEO:(OI)(CI)F" /T
这样给用户的文件夹及其子文件夹授予完全控制权限,如下所示:

关掉后,我们重新打开Miniforge Prompt,测试一下:
bash
echo test > D:\Miniforge3\pkgs\test_write.txt
del D:\Miniforge3\pkgs\test_write.txt
再次输入创建环境的命令,这次应该是可以了。

并使用命令行激活环境:
bash
conda activate geo311
检查python的版本与位置:
bash
python --version
where python
结果显示如下:

配置镜像源:我们使用USTC镜像源
输入命令:
bash
notepad %USERPROFILE%\.condarc
在打开的记事本中,输入如下命令替换:
bash
channels:
- conda-forge
show_channel_urls: true
channel_priority: strict
channel_alias: https://mirrors.ustc.edu.cn/anaconda/cloud
回到程序,依次输入如下命令进行检查:
bash
conda clean -i -y
conda config --show channels
conda config --show channel_alias
conda config --show channel_priority
看如下结果,显示配置成功了:
三、基础科研包的安装
1.安装读取NC,处理Excel,开展数组运算的包
确认环境是Geo311,输入命令:
bash
mamba install numpy pandas scipy xarray netcdf4 h5netcdf dask bottleneck tqdm openpyxl xlsxwriter -y
**numpy:**数值计算的底层基础,提供多维数组和矩阵运算。
**pandas:**处理表格型数据,站点观测,时间序列二维表格数据。
**scipy:**提供插值、优化、统计检验、信号处理、稀疏矩阵等功能。
**xarray:**专门处理多维带标签数组的库,是气象/气候数据处理的核心工具。
**netcdf4:**读写 NetCDF 格式文件(.nc)的底层库。
**h5netcdf:**读写 NetCDF 文件的一种后端,比 netCDF4 库读取速度通常更快、更轻量。
**dask:**并行计算/延迟计算库,用于自动分块。
**tqdm:**进度条工具,批量处理大量文件时需要。
**openyxl:**读写 Excel 文件
测试安装的包是否成功:
bash
python -c "import numpy, pandas, scipy, xarray, netCDF4, h5netcdf, dask, tqdm, openpyxl; print('basic packages ok')"
显示如下即为安装成功:

2. 安装地理底层包
继续输入命令:
bash
mamba install shapely pyproj gdal fiona -y
这些包是比较关键的底层GIS依赖。
shapely:几何对象操作,主要用于做空间运算;
pyproj:坐标系统与投影转换;
gdal:栅格/矢量数据的读写格式转换,这个包似乎对Python的版本比较依赖,之前装的时候没有装对应的出了问题,解决思路大家可以阅读:
探索Python融合地学:一文解决osgeo库安装失败问题-CSDN博客
flona:矢量数据的读写接口。
输入检查命令:
bash
python -c "import shapely, pyproj, fiona, osgeo; print('geo core ok')"
显示如下,即为安装成功:

3.安装栅格、矢量、地图包
输入命令:
bash
mamba install geopandas rasterio rioxarray cartopy rasterstats regionmask -y
geopandas:矢量数据分析的核心库,给pandas加上几何列,用来做空间连接、裁剪;
rasterio:栅格数据的读写与处理,比GDAL更方便;
rioxarray:给xarray加上地理空间能力(基于rasterio),让nc/tif数据能够使用xarray的方式处理并保留坐标信息,常用于处理nc数据;
cartopy:地图投影与地理可视化,配合matplotlib画坐标系的地图(海岸、国界);
rasterstats:栅格数据的区域统计,如计算区域内的均值,最大值;
regionmask:给经纬度网格数据打区域掩膜;
输入检查命令,显示为OK,即为成功;
bash
python -c "import geopandas, rasterio, rioxarray, cartopy, rasterstats, regionmask; print('geospatial packages ok')"
4.安装科研绘图包
输入命令:
bash
mamba install matplotlib seaborn scienceplots cmocean cmcrameri colorspacious -y
matplotlib:Python绘图的基础库,只要使用Python画图,几乎都会用它;
seaborn:基于matplotlib的统计可视化,做分布图、热力图等更简洁,默认配色和样式更美观;
scienceplots:提供期刊风格的matplotlib样式模板,一行代码让图表符合SCI论文排版规范;
cmocean:海洋学专用配色方案,常用于温度、盐度、地形高程等指标;
cmcrameri:Fabio Crameri设计的科学感知均匀色图集,色盲友好、印刷友好;
colorspacious:颜色空间转换与色觉模拟工具,可以用来检验配色方案对色盲读者是否友好;
测试安装成功命令:
bash
python -c "import matplotlib, seaborn, scienceplots, cmocean, cmcrameri, colorspacious; print('plotting packages ok')"
5. 安装统计和机器学习包
安装命令为:
bash
mamba install scikit-learn xgboost statsmodels pymannkendall -y
scikit-learn:通用机器学习库,回归、分类、聚类、降维(如PCA)、特征工程等;
xgboost:梯度提升树模型,预测精度高,常用于非线性关系较强的建模任务;
statsmodels:经典统计建模库,线性回归、时间序列分析(ARIMA等)、假设检验;
pymannkendall:Mann-Kendall趋势检验专用包,还能配合Sen's slope估计趋势斜率;
测试安装成功命令为:
bash
python -c "import sklearn, xgboost, statsmodels, pymannkendall; print('ml and stats packages ok')"
6. 安装Jupyter支持
有些小伙伴也喜欢配合jupyter开展日常的科研工作,可以安装Jupyter支持。 输入命令
bash
mamba install jupyterlab notebook ipykernel -y
然后把刚配置好的环境注册成Jupyter可选的内核(kernel):
bash
python -m ipykernel install --user --name geo311 --display-name "Python geo311"
测试一下,显示OK表示配置成功:
bash
python -c "import notebook, ipykernel; print('jupyter packages ok')"
当所有的配置完成后,输入以下命令,表示是否全部配置完成:
bash
python -c "import numpy, pandas, scipy, xarray, netCDF4, h5netcdf, dask, geopandas, rasterio, rioxarray, cartopy, shapely, pyproj, fiona, osgeo, rasterstats, regionmask, matplotlib, seaborn, scienceplots, cmocean, cmcrameri, sklearn, xgboost, statsmodels, pymannkendall; print('All scientific packages are ready')"
接下来,我们需要将环境中的库导出一份,方便后续我们配置环境的时候能够直接下载完整的库,依次运行:
bash
conda env export --from-history > D:\geo311_environment.yml
conda env export > D:\geo311_environment_full.yml
至此,我们的库基本上都下载并且安装完了。
四、安装Pycharm软件
官网链接:下载 PyCharm:JetBrains 出品的用于数据科学和 Web 开发的 Python IDE
在官网中选择.exe(Windows)版本即可,电脑如果是ARM架构处理器,选第二个,一般我们的电脑都是选第一个都行,而且现在不再区分专业版和社区版了。

下载后,点击打开,可以新建一个Pycharm的文件夹,在安装目录这里修改一下。

勾选创建快捷方式、添加将文件夹打开为项目、创建.py关联,其他的不勾选。

保留不勾选,点击安装即可。等待程序响应安装进度条完成。

进度条结束后,可以不用点打开Pycharm软件。
五、配置Pycharm软件
语言配置,使用默认的中文简体即可,点击新建项目。

**位置:**建议在D盘新建一个Python的项目文件夹,这样方便我们存储相关研究项目。
创建欢迎脚本:取消勾选,项目更干净。
解释器类型:选择自定义环境,在Miniforge中找到envs下面,新建立环境的python.exe文件,注意不是Miniforge的python.exe文件。点击创建即可。

鼠标右击项目,新建一个python文件,00_check

在新的脚本中输入代码,测试程序是否正常:
bash
import os
import sys
from pathlib import Path
# 自动定位当前 conda 环境
CONDA_PREFIX = Path(sys.prefix)
# 手动告诉 GDAL / PROJ 数据目录在哪里
os.environ["GDAL_DATA"] = str(CONDA_PREFIX / "Library" / "share" / "gdal")
os.environ["PROJ_DATA"] = str(CONDA_PREFIX / "Library" / "share" / "proj")
# 下面再导入科研包
import numpy as np
import pandas as pd
import xarray as xr
import geopandas as gpd
import rasterio
import rioxarray
import cartopy
import matplotlib
import sklearn
from osgeo import gdal, osr
gdal.UseExceptions()
osr.UseExceptions()
print("=" * 70)
print("Python executable:")
print(sys.executable)
print("\nGDAL_DATA:")
print(os.environ["GDAL_DATA"])
print("\nPROJ_DATA:")
print(os.environ["PROJ_DATA"])
print("\nPackage versions:")
print(f"numpy : {np.__version__}")
print(f"pandas : {pd.__version__}")
print(f"xarray : {xr.__version__}")
print(f"geopandas : {gpd.__version__}")
print(f"rasterio : {rasterio.__version__}")
print(f"rioxarray : {rioxarray.__version__}")
print(f"cartopy : {cartopy.__version__}")
print(f"matplotlib : {matplotlib.__version__}")
print(f"sklearn : {sklearn.__version__}")
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
print("\nProjection name:")
print(srs.GetName())
print("\nEnvironment check passed.")
输出结果如下:
bash
======================================================================
Python executable:
D:\Miniforge3\envs\geo311\python.exe
GDAL_DATA:
D:\Miniforge3\envs\geo311\Library\share\gdal
PROJ_DATA:
D:\Miniforge3\envs\geo311\Library\share\proj
Package versions:
numpy : 2.4.6
pandas : 3.0.5
xarray : 2026.7.0
geopandas : 1.1.4
rasterio : 1.4.4
rioxarray : 0.19.0
cartopy : 0.25.0
matplotlib : 3.11.1
sklearn : 1.9.0
Projection name:
WGS 84
Environment check passed.
至此,Pycharm已经可以正常使用了。
六、Pycharm联动GitHub
做科研,代码备份很重要,由于我们的科研代码会经常修改,因此我们需要有个仓库记录,他科研帮助我们:代码改坏了,可以回退;知道每次改了什么;不同版本的代码不会混乱;新电脑可以从 GitHub 重新拉取代码;后续论文代码整理、复现更规范。
1.安装Git for Windows
首先,我们需要装一个Git fot Windows:Git - Install for Windows
直接选择Git for Windows/X64 setup就可以了。

在D盘新建文件夹,D:\Git,存放Git的安装目录,如下图所示:

下一页,默认这些勾选就好,点击next:

继续保持默认,下面的也不要勾选,点击next;

这里选择Use Notepad as Git's default editor,如果你想用VScode,你可以选择对应的。注意不是选Use Notepad++ as Git's default editor,否则无法进行下一步。

新建 Git 仓库时,默认分支叫什么名字,第一个是让Git自己决定,这里我们选择第二个,安装目前主流的Git仓库的分支创建命名方式。

这里为是否把 Git 命令加入Windows的PATH 环境变量,也就是以后能不能在CMD、PowerShell、PyCharm Terminal 里直接使用Git命令,我们要选择中间这个,都可以识别。

这里是选择Git 使用哪个 SSH 程序连接远程服务器,一般默认选择Git默认的开发SSH:

这里是Git 通过 HTTPS 连接 GitHub 时,用哪个 SSL/TLS 证书验证方式?我们一般选择Windows系统的证书库。

这里是设置Git 如何处理文本文件的换行符,默认第一个就行,在 Windows 本地编辑时使用 Windows 换行 CRLF,提交到 Git 仓库时自动转换成 Unix 换行 LF。

这是在问Git Bash 使用哪种终端窗口打开,我们选择第一个,使用Git自带的终端窗口,第二个是用 Windows 自带命令行窗口,也可以用,但感觉用官方的比较好。

**git-pull:**把 GitHub 远程仓库里的最新代码拉到你本地电脑,并自动合并到当前项目里。
这里是在问执行此操作时时,如果远程仓库和本地仓库都有修改,Git 默认怎么合并?我们选择merge即可,即保留两边修改历史,用合并方式同步。

这是在问Git 是否帮你保存 GitHub 登录凭据,这里是用来授权登录的,第一次登录的时候可能需要授权,后面就不用每次输入账号密码。

最后配置,默认这个勾选就好了,等待安装完成。

取消勾选第二个,点击finish,完成安装。

2.配置Git
关掉Pycharm,重新打开,在Pycharm的终端输入git --version,能够正确显示版本就成功了。

接下来,配置Git用户信息,依次在终端输入:
bash
git config --global user.name "PromisingGEO"
git config --global user.email "hesuixinya511@gmail.com"
git config --global init.defaultBranch main
git config --global --list
显示如下即为配置成功:

3.进行Git管理
右击项目,点击新建,选择文件新建,文件命名命名为.gitignore。

复制如下内容进去,这是为防止后面误把nc,tif,Excel、图片、结果文件上传到 GitHub。
bash
# PyCharm
.idea/
# Python cache
__pycache__/
*.py[cod]
*.pyo
# Virtual environments
.venv/
venv/
# Jupyter cache
.ipynb_checkpoints/
# Large climate / GIS data
*.nc
*.nc4
*.tif
*.tiff
*.grib
*.grb
*.h5
*.hdf
*.zarr
# Tables and intermediate results
*.xlsx
*.xls
*.csv
*.parquet
*.pkl
# Figures and outputs
*.png
*.jpg
*.jpeg
*.pdf
*.svg
# Logs and temporary files
*.log
*.tmp
*.bak
# System files
Thumbs.db
.DS_Store
点击菜单栏顶部的版本控制,下拉,选择创建Git仓库。

在弹出来的窗口中,我们要选择整个文件夹,这里我就是要选择wind_research这个总的文件夹,注意不是选下面的单个文件。这样操作后,这个项目文件夹下面的文件变成红色,代表可追踪。

接下来,我们来尝试第一次提交,直接点击上面截图中的提交,然后勾选我们的两个文件,提交信息我们写Initial commit: set up wind research project。

提交后,页面的右下角会显示文件的提交信息,这样文件的第一个版本就记录了。

继续点击在GitHub上共享项目,在弹出的窗口中写信息,点击添加账户,选择通过GitHub账户登录,此时会弹出授权的界面。

可能会需要你登录一下账号,然后进行授权,如下,授权即可。

显示如下:

再回到Pycharm界面,会发现账户已经显示了,点击共享即可。

然后会出现如下,说明成功共享。

4.访问个人项目
重新进入GitHub,能够看到私人项目的共享,我们进入这里面,新建一个.md,输入如下内容:
bash
# wind_research
This repository contains Python scripts for wind resource and wind energy research.
## Environment
The project uses the `geo311` conda environment.
Python interpreter:
```text
D:\Miniforge3\envs\geo311\python.exe
```
在GitHub里面大概是这样的,点击Commit Change,

在提交信息这里写docs: add README,表示文档类修改,用于添加README文件。

点击绿色按钮,commit changes提交,表示记录一个版本。如果你改代码,比如修改了一些核心的代码文件,也需要重新进行一次commit changes操作,这样Git才会记录这次改了哪些文件,什么时候改的,提交说明是什么。最终GitHub的结果如下。

然后我们回到Pycharm,在main中点击更新项目。

然后在弹出的窗口中选择第一个,把远程仓库里的新内容,即在网页端提交的README.md,合并到你本地当前的main分支,点击确定。

此时左边显示三个文件,表示同步完成了。

最后我们来确认一下,输入:
bash
git status
git remote -v
显示如下即为成功。

至此,现在已经成功了!文章写到这里,真的花了一点时间,希望对我们的学习都有帮助吧,谢谢支持!