如何在无外网权限的银行内网机房搭建Python离线开发环境

陌明同学_4736

陌明同学_4736

2026-10-23

489人浏览

原创

必须先向运维/安全部门申请python解释器白名单及本地pip源策略例外,提交指定版本安装包的sha256哈希与用途说明,禁用所有远程网络行为,采用离线wheel包+hash锁定方式安装。

如何在无外网权限的银行内网机房搭建python离线开发环境

确认内网机房是否允许安装 Python 运行时

银行内网机房通常禁用非白名单程序,python.exe 或 pip 二进制文件可能被终端管控软件(如奇安信天擎、深信服EDR)直接拦截。必须先向运维/安全部门申请「Python 解释器白名单」和「本地 pip 源策略例外」——不是申请“允许装 Python”,而是明确提交:python-3.11.9-embed-amd64.zip(Windows)或 Python-3.11.9.tgz(Linux)的 SHA256 哈希值与用途说明。

常见错误现象:
– 双击 python.exe 无反应,任务管理器里看不到进程 → 实为 EDR 静默拦截
– 运行 pip install requests 卡在 “Collecting packages” → DNS 被策略禁止,不是网络慢

  • 优先选用 embed 版本(Windows)或 --enable-optimizations 编译的静态链接版(Linux),避免依赖系统 DLL 或 libc 版本冲突
  • 不推荐用 pyenv 或 conda:它们需联网下载构建脚本、触发额外网络行为,且 conda 的 conda install 默认走 HTTPS,即使离线也会尝试连 repo.anaconda.com
  • 若只允许运行已签名程序,可要求提供由银行 CA 签名的 Python 安装包(部分国有大行已有内部 Python 镜像站 + 签名机制)

用 offline-pip 打包并验证第三方库依赖树

在有外网的开发机上,不能简单 pip download 就完事。银行项目常含 C 扩展(如 pyyaml、cryptography),其 wheel 文件平台标签(cp311-cp311-win_amd64)必须与目标机完全一致,否则安装时报 ERROR: xxx.whl is not a supported wheel on this platform。

实操建议:

  • 在目标环境同型号物理机(或相同 OS 版本 + CPU 架构的虚拟机)上,用 python -m pip debug --verbose 记下 platform_tag 和 abi_tag,作为 download 命令的 --platform 参数依据
  • 用 pip download --no-deps --platform win_amd64 --python-version 311 --only-binary=all -d ./wheels requests 先下载主包,再用 pip download --find-links ./wheels --no-index --no-deps -d ./wheels 补全依赖,避免漏掉 charset-normalizer-3.3.2-py3-none-any.whl 这类纯 Python 包
  • 把整个 wheels/ 目录拷进内网后,务必执行 pip install --find-links ./wheels --no-index --upgrade --force-reinstall requests 验证能否闭环安装,而非只检查文件是否存在

替换默认 pip 源为本地 file:// 路径并禁用所有远程行为

内网中只要 pip 配置残留 https://pypi.org/simple,哪怕只输 pip list,新版 pip(≥22.0)也会默认发起 HEAD 请求探测源可用性,触发安全审计告警。必须彻底切断网络探针。

python学习
python学习

Python 编程学习助手 skill,面向零基础用户。 当用户表达以下意图时触发: - 学习 Python 基础概念(变量、数据类型、循环、函数、类等) - 请求 Python 练习题或测验 - 请求审查或调试 Python 代码 - 请求 Python 项目实战指导(爬虫、数据分析、Web 开发等入门项目) - 泛化表述如"教我 Python""我想学编程""Python 怎么写""帮我学 Python" 此 skill

下载

操作要点:

  • 不要改 %APPDATA%\pip\pip.ini(Windows)或 $HOME/.pip/pip.conf(Linux),因内网机通常无用户家目录写权限;改用项目级配置:pip config set global.index-url "file:///D:/offline_pypi/simple"
  • file:// 路径必须是绝对路径,且目录结构需符合 PEP 503:即 D:\offline_pypi\simple\requests\ 下放 index.html(列出该包所有 wheel)和 wheel 文件本身
  • 运行 pip install --trusted-host pypi.org --index-url "file:///D:/offline_pypi/simple" requests 时,--trusted-host 实际无效(file 协议不走 TLS),但加上可避免某些定制版 pip 报错;真正起作用的是 --index-url 和 --find-links
  • 检查是否干净:pip config debug 应显示 global.index-url='file:///D:/offline_pypi/simple',且 pip config list 不输出任何 https 相关字段

用 venv + requirements.freeze 维持环境可重现性

银行审计要求“任意时刻可重建完全一致环境”,仅靠手动 pip install 不满足合规。必须用 venv 隔离 + 锁定 hash。

关键动作:

  • 在内网机上创建环境:python -m venv D:\proj\venv,然后激活:D:\proj\venv\Scripts\activate.bat(Win)或 source D:/proj/venv/bin/activate(Linux)
  • 安装时强制校验 hash:pip install --find-links file:///D:/offline_pypi/wheels --no-index --require-hashes -r requirements.txt,其中 requirements.txt 必须含每行 pkg==1.2.3 --hash=sha256:abc...
  • 生成锁文件不能用 pip freeze(它会混入系统包如 pip、setuptools);而要用 pip install --dry-run --report - 输出 JSON,再用脚本提取业务包及其 hash —— 或更稳妥地,在外网机用 pip-compile --generate-hashes requirements.in(via pip-tools)预生成

最容易被忽略的一点:银行内网机常禁用计划任务与临时目录写入,venv 的 Scripts\pip 若被策略识别为“可疑脚本”,可能无法执行。此时应改用 python -m pip 全路径调用,并将 venv 放在白名单路径(如 D:\bankapp\)下,而非默认的用户目录。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

python pip源 pip

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

2023.07.20

1791

4

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

2023.07.25

4684

7

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.31

1749

3

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

2023.08.03

27817

23

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3347

5

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3367

5

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1203

5

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.10

596

4

python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2603

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习