2026 最新版 Geo 源码搭建开发步骤(IP 地理定位核心版)
Geo 源码核心用于 IP 地址地理定位解析,2026 版在依赖兼容性、数据库适配、开发体验上做了优化,以下是跨平台通用的开发环境搭建步骤,覆盖 Windows/macOS/Linux,步骤清晰可落地,适配开发调试场景。

一、前置环境准备(必装,2026 版核心依赖)
2026 版 Geo 源码对基础环境做了版本适配,最低版本要求如下,建议直接安装指定稳定版:
- Python 3.10+(核心运行环境,3.12 版为 2026 推荐版)
- pip 22.0+(Python 包管理工具,随 Python 自动安装,需升级)
- Git 2.30+(源码拉取工具,用于克隆官方仓库)
- 轻量数据库:SQLite 3.36+(开发环境默认,免安装、免配置,2026 版内置适配)
环境快速验证(终端 / 命令提示符执行)
bash
运行
# 验证Python版本
python --version # Windows
python3 --version # macOS/Linux
# 验证pip版本
pip --version # Windows
pip3 --version # macOS/Linux
# 验证Git版本
git --version
# 验证SQLite(无需手动安装,Python内置)
python -c "import sqlite3; print(sqlite3.sqlite_version)"
环境快速安装(新手友好)
- Windows:下载安装包,勾选 Add to PATH(添加到系统环境变量)。
- macOS:使用 brew 包管理(
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"),然后执行brew install python3 git。 - Linux(Ubuntu/Debian):
sudo apt update && sudo apt install python3 python3-pip git -y;CentOS/RHEL:sudo yum install python3 python3-pip git -y。
二、Geo 源码获取(官方仓库克隆)
2026 版 Geo 源码主仓库仍托管于 GitHub,通过 Git 克隆到本地,无需手动下载压缩包(避免缺失最新分支文件):
1. 新建开发目录(可选,规范管理)
bash
运行
# 新建目录并进入(自定义路径,比如桌面/geo-dev)
mkdir -p ~/geo-dev && cd ~/geo-dev # macOS/Linux
md C:\geo-dev && cd C:\geo-dev # Windows
2. 克隆 2026 版 Geo 官方源码
bash
运行
# 核心克隆命令(2026版主分支为main,已内置最新特性)
git clone https://github.com/geo-official/geo-core-2026.git
# 进入源码根目录(后续所有操作均在此目录执行)
cd geo-core-2026
若 GitHub 访问缓慢,可使用 Gitee 镜像仓库:
git clone https://gitee.com/geo-mirror/geo-core-2026.git(与官方同步更新)。
三、项目初始化(虚拟环境 + 依赖安装)
必须创建 Python 虚拟环境(避免污染全局 Python 环境,解决依赖版本冲突),2026 版源码已内置依赖清单,一键安装即可。
1. 创建并激活 Python 虚拟环境
Windows 系统
bash
运行
# 创建虚拟环境(环境名默认venv,可自定义)
python -m venv venv
# 激活虚拟环境(关键步骤,激活后终端前缀会显示(venv))
venv\Scripts\activate
macOS/Linux 系统
bash
运行
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
退出虚拟环境命令:
deactivate(开发完成后执行)。
2. 升级 pip 并安装项目全部依赖
2026 版源码的依赖清单统一放在requirements.txt(含核心依赖如 Flask、geoip2、pymysql 等,已锁定 2026 兼容版本),激活虚拟环境后执行:
bash
运行
# 先升级pip到最新版,避免安装依赖时报错
pip install --upgrade pip
# 一键安装所有依赖(2026版无额外手动安装依赖)
pip install -r requirements.txt
若安装失败:① 检查网络是否正常;② 切换国内 pip 源(
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple);③ 确认虚拟环境已激活。
四、核心配置文件修改(开发环境适配)
2026 版 Geo 源码采用配置文件分离 设计,开发环境无需修改复杂配置,仅需复制示例配置并修改数据库连接 和调试模式 即可,核心配置文件为config.py。
1. 复制示例配置文件(源码内置示例,无需手动创建)
bash
运行
# 源码根目录执行,复制config.example.py为实际配置文件config.py
cp config.example.py config.py # macOS/Linux
copy config.example.py config.py # Windows
2. 修改核心配置项(打开 config.py,修改以下 3 项即可)
用编辑器(VS Code/Notepad++)打开config.py,找到对应配置项,修改为以下内容(开发环境专用,生产环境需调整):
python
运行
# 1. 调试模式:开发环境必须开启(修改代码后自动重启服务,显示错误详情)
DEBUG = True
# 2. 数据库连接配置(2026版开发环境默认SQLite,免配置,直接使用以下路径)
# SQLite数据库文件会自动生成在源码根目录的data文件夹下,无需手动创建
SQLALCHEMY_DATABASE_URI = 'sqlite:///./data/geo_2026.db'
SQLALCHEMY_TRACK_MODIFICATIONS = False # 关闭无用的跟踪功能,减少警告
# 3. 服务端口(可选,默认5000,避免端口冲突可修改为8080/9000等)
PORT = 5000
2026 版已移除多余配置项,开发环境仅需以上 3 项,无需配置 IP 库密钥、缓存等(默认内置测试 IP 库)。
五、数据库初始化(表结构创建 + 基础数据导入)
2026 版 Geo 源码使用 ORM 框架(SQLAlchemy)管理数据库,无需手动写 SQL 建表,通过内置脚本一键完成表结构创建和基础 IP 地理数据导入(开发环境内置轻量测试 IP 库,约 10 万条基础数据)。
1. 初始化数据库表结构
bash
运行
# 源码根目录执行,一键创建所有所需表(ip库表、日志表等)
python manage.py db init
python manage.py db migrate # 生成表结构迁移文件
python manage.py db upgrade # 应用迁移文件,创建实际表结构
2. 导入基础 IP 地理数据(2026 版内置初始化脚本)
bash
运行
# 导入开发环境专用基础IP数据,执行完成后提示"Data init success"即成功
python manage.py init_data
若需导入最新完整 IP 库(生产环境用),可从 Geo 官方下载 2026 版 IP 库文件(.db/.csv 格式),执行
python manage.py import_ipdb --file=最新IP库文件路径即可。
六、启动 Geo 开发服务
所有配置完成后,通过官方内置的开发启动命令启动服务,2026 版已优化启动脚本,无需手动设置环境变量,一键启动。
启动命令(源码根目录,虚拟环境激活状态下)
bash
运行
# 2026版推荐启动命令,开启热重载(修改代码后自动重启,开发必备)
flask run --reload --host=0.0.0.0
--reload:热重载模式,开发时修改 Python / 配置文件,服务自动重启,无需手动停止。--host=0.0.0.0:允许局域网内其他设备访问(比如手机 / 另一台电脑测试),仅开发环境使用。
启动成功标识(终端显示以下内容即说明服务正常运行)
bash
运行
* Serving Flask app 'app'
* Debug mode: on
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://192.168.xxx.xxx:5000
* Restarting with stat
* Debugger is active!
* Debugger PIN: 123-456-789
七、开发环境功能验证(核心 IP 查询功能测试)
服务启动后,通过浏览器 或终端 curl 命令 测试核心 IP 地理定位功能,验证搭建是否成功,2026 版内置默认测试接口/api/v1/ip/query。
验证方式 1:浏览器直接访问(新手友好)
打开浏览器,输入以下地址,替换8.8.8.8为任意测试 IP(如本机公网 IP/192.168.1.1):
plaintext
http://127.0.0.1:5000/api/v1/ip/query?ip=8.8.8.8
成功返回结果(JSON 格式,包含 IP 所属国家、省份、城市、运营商等信息):
json
{
"code": 200,
"msg": "success",
"data": {
"ip": "8.8.8.8",
"country": "美国",
"province": "加利福尼亚州",
"city": "山景城",
"isp": "Google LLC",
"longitude": -122.0574,
"latitude": 37.4192
}
}
验证方式 2:终端 curl 命令(开发 / 测试常用)
bash
运行
# macOS/Linux终端或Windows Git Bash执行
curl http://127.0.0.1:5000/api/v1/ip/query?ip=1.1.1.1
返回上述相同格式的 JSON 结果,即说明核心功能正常。
八、推荐开发工具(2026 版适配,提升开发效率)
结合 Geo 源码开发场景,推荐轻量、高效的开发工具,均为免费且跨平台:
- 代码编辑器:VS Code(必装插件:Python、Flask Snippets、JSON Tools,支持代码提示、调试、格式化)。
- 调试工具:Postman/ApiPost(测试 API 接口,比浏览器更灵活,支持 POST/GET 请求、参数管理)。
- 数据库管理:DB Browser for SQLite(可视化管理 SQLite 数据库,查看 IP 库表、修改数据,新手友好)。
- 终端工具:Windows Terminal(Windows)、iTerm2(macOS)、Xshell(Linux),支持多窗口、命令高亮。
九、生产环境部署注意事项(开发完成后扩展)
若需将搭建好的 Geo 服务部署到生产环境,必须修改以下配置,避免安全风险和性能问题:
- 关闭调试模式:将
config.py中DEBUG = False。 - 更换数据库:将 SQLite 替换为 MySQL/MariaDB(支持高并发,配置:
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://用户名:密码@数据库地址:3306/geo_2026?charset=utf8mb4')。 - 关闭热重载:启动命令改为
gunicorn -w 4 -b 0.0.0.0:5000 app:app(使用 Gunicorn 作为 WSGI 服务器,替代 flask run)。 - 配置反向代理:使用 Nginx 做反向代理,处理静态资源、负载均衡、HTTPS 配置。
- 导入完整 IP 库:替换开发环境的测试 IP 库为 Geo 官方 2026 版完整 IP 库(支持全球 IPv4/IPv6 解析,约 10 亿条数据)。
- 开启缓存:配置 Redis 缓存,减少数据库查询压力(2026 版内置 Redis 适配,仅需在
config.py添加 Redis 连接配置)。
搭建核心注意事项
- 全程确保Python 虚拟环境已激活(终端前缀显示 (venv)),否则依赖会安装到全局环境,可能导致版本冲突。
- 2026 版源码不兼容 Python3.9 及以下版本,若验证版本时低于 3.10,需升级 Python。
- 数据库初始化时若报错,检查是否已创建
data文件夹(源码根目录手动创建mkdir data/md data即可)。 - 启动服务时若提示端口被占用,修改
config.py中的PORT项(如改为 8080),或关闭占用端口的程序(netstat -ano | findstr 5000(Windows)/lsof -i:5000(macOS/Linux)查看占用进程)。
总结
2026 版 Geo 源码搭建核心步骤可概括为:环境准备→克隆源码→虚拟环境初始化→配置修改→数据库初始化→启动服务→功能验证 ,全程无复杂手动配置,开发环境默认使用 SQLite 免数据库部署,核心优化点为依赖版本锁定、配置分离、一键初始化,适配新手和资深开发者。
搭建成功后,即可基于源码进行二次开发(如新增 IP 解析字段、自定义 API 接口、集成其他业务系统等)。