python内网环境安装第三方包

news/2025/2/4 1:04:32/

文章目录

  • 一、问题
  • 二、解决方法
  • 三、代码实现


一、问题

内网安装第三方包的应用场景,一般是一些需要在没网的环境下进行开发的情况。这些环境一般仅支持本地局域网访问,所以只能在不下载任何第三方包的情况下艰难开发。


二、解决方法

将当前应用依赖的第三方包提前下载到本地,拷贝到单机环境下安装,但是不能一个个下载安装,那样效率很低,具体参考以下代码,如有更好的办法希望大佬指点。


三、代码实现

import os
import timedef download_env_package(package_dir):'''下载当前虚拟环境已安装的第三方包的whl到本地:return:'''requirmenets_local_path = f'./requirements_local__{time.time()}.txt'if not os.path.exists(package_dir): os.mkdir(package_dir)# 将虚拟环境的包信息打印到 requirements.txt 中cmd_freeze = f'pip freeze > {requirmenets_local_path}'os.system(cmd_freeze)time.sleep(2)# 下载 requirements.txt 中的第三方包到本地cmd_download = f'pip download -r {requirmenets_local_path} -d {package_dir}'print(cmd_download)os.system(cmd_download)# 删除缓存的安装包文件os.remove(requirmenets_local_path)def install_local_packages(package_dir):'''安装本地第三方包:return:'''package_path_list = [os.path.join(package_dir, name) for name in os.listdir(package_dir)]print('---------------------安装列表---------------------')for pc in package_path_list:print(pc)print('---------------------安装列表---------------------')# cmd_env_list = 'v'cmd_install_list = "pip install".split(' ')for idx, pc in enumerate(package_path_list):# print(f'当前进度: {idx+1} / {len(package_path_list)}')cmd_install_list.append(pc)os.system(' '.join(cmd_install_list))if __name__ == '__main__':# 指定第三方包whl文件的存放目录package_dir = '../package_cache'# 下载# 此方法在有网的地方执行# 将当前虚拟环境下依赖的第三方包whl文件下载到指定目录download_env_package(package_dir)# 下载后将此脚本和下载好的第三方包目录一并复制到没网的机器上执行安装方法	# 安装# 此方法在没网的地方执行# 将指定目录下的whl文件安装到当前虚拟环境install_local_packages(package_dir)


http://www.ppmy.cn/news/1081580.html

相关文章

DT vray(焦散 间接照明 图像照明)

折射属性 焦散 材质覆盖 基于图像的照明 双面材质 间接照明 开启GI 光子映射 边上 Irradiance Maps 渲染平滑几何体

Impagliazzo five-worlds

参考文献: Impagliazzo R. A personal view of average-case complexity[C]//Proceedings of Structure in Complexity Theory. Tenth Annual IEEE Conference. IEEE, 1995: 134-147. 文章目录 五个世界AlgorithmicaHeuristicaPessilandMinicryptCryptomania 五个世…

JavaScript 复习

第三章 JavaScript 1 JavaScript的起源 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。Netscape在最初将其脚本语言命名为LiveScript,因为Netscape与Sun合作,网景公司管理层希望蹭Java的热度…

redis未授权访问

文章目录 搭建环境漏洞复现安装Exlopit并使用 前提条件: 1.安装docker docker pull medicean/vulapps:j_joomla_22.安装docker-compose docker run -d -p 8000:80 medicean/vulapps:j_joomla_23.下载vulhub 搭建环境 输入下面命令,来到Redis的路径下&am…

QGIS合并矢量图层后layer属性显示不全 | QGIS踩坑实录

省流 QGIS【合并矢量图层】,自动生成layer字段时,遇到图层名中的“.”等不支持的字符会自动截断 问题描述 使用QGIS的【合并矢量图层】功能时,在合并结果中,QGIS会自动添加一个layer字段,用来记录当前数据是来自合并…

iPhone 14 Plus与iPhone 14 Pro:你应该买哪一款

又到了iPhone季,这意味着你可能会在几种不同的机型之间左右为难,无法决定买哪一款。更令人困惑的是,苹果推出的iPhone变体——iPhone 14 Plus,只比老款iPhone 14 Pro低100美元。 有这么多选择,你可能想知道哪款iPhone最适合你。你应该买一部大屏幕的iPhone 14 Plus并节省…

Docker原理详细剖析-Namespace

一、简介 docker容器技术从2013年开始火了以后,2014年左右当时有幸在学校能和学院教授一起做些项目以及学习。其中docker技术在当时来说还算是比较新的技术,国内关于这块的资料以及使用也才刚刚开始,讨论docker技术,算是相对时髦的…

LabVIEW计算测量路径输出端随机变量的概率分布密度

LabVIEW计算测量路径输出端随机变量的概率分布密度 今天,开发算法和软件来解决计量综合的问题,即为特定问题寻找最佳测量算法。提出了算法支持,以便从计量上综合测量路径并确定所开发测量仪器的测量误差。测量路径由串联的几个块组成&#x…