CentOS7 离线部署 Python 项目

news2024/11/17 15:46:26

1.前言

主要过程如下:
(1)创建项目环境,生成requirements.txt文件。(如果已有可跳出)
(2)新建一个跟目标机器一样的操作系统,python环境的测试服务器,并下载Python项目所需第三方依赖包。
(3)从测试服务器下载依赖文件,上传至离线服务器上。
(4)安装Python 离线依赖包,运行 Python 项目。

PS1:本文中[pip3]是项目环境所设置。如果你本地提示无此命令,试试pip命令。
PS2:离线安装python教程地址

我以 window系统下开发环境,部署到 centos7 离线服务器上。

2.在测试服务器创建项目环境

如果已有requirements.txt,跳过本章节。
本项目主要是使用 pipenv 创建项目虚拟环境,如感兴趣详见 pipenv-教程
由于本项目未创建过程项目虚拟环境,所以导致无法生成requirements.txt文件。第一步就是要整理出项目虚拟环境,为生成requirements.txt文件做准备。

(1)创建项目虚拟环境

# 安装虚拟环境
pipenv install
# 进入虚拟环境
pipenv shell 

(2)依次重新安装第三方依赖包

注:反复执行程序,通过pipenv install 依次安装依赖包,直至不出现

# 安装第三方依赖包命令
pipenv install <package 第三方依赖包> --skip-lock

(3)生成requirements.txt

# 生成requirements.txt
pipenv lock                                # 生成速度慢,耐心等待
pipenv requirements > requirements.txt

3.在虚拟机中下载第三方依赖包

根据目标服务器,创建一样系统环境、python环境虚拟机。主要原因是,window开发环境依赖包和 目标服务器centos7环境所需依赖包差异很多,尽量在一样环境下载依赖包,避免奇奇怪怪报错。h
(注:离线安装python教程地址)

# 1.打开项目所在地址
cd <project_path>                               # project_path为项目地址

# 2.下载第三方依赖包
pip3 download pipenv -d packages                # 下载pipenv依赖包,保存至packages文件夹,用于创建离线环境
pip3 download -d packages -r requirements.txt   # 下载requirements.txt相关依赖包

# 3.安装pipenv依赖包,进入项目虚拟环境
pip3 install pipenv --no-index --find-links=packages   # 从packages文件夹,安装pipenv
ln -s /usr/local/python3/bin/pipenv /usr/local/bin/pipenv  # 创建pipenv指令
pipenv shell                                               # 进入虚拟环境

# 4.通过requirements.txt 批量安装依赖包
pipenv run pip3 install --no-index --find-links=packages -r requirements.txt

# 5.测试运行
# 在虚拟环境下,执行你所需 ***.py 文件,运行成功则ok。详见下图

在这里插入图片描述

图1:虚拟环境下执行python文件

4.转移第三方依赖包至目标服务器

  1. 从测试服务器中下载源代码 和 第三方依赖包
  2. 通过WinSCP.exe工具,将离线文件上传至服务器。(注:/home/python3文件夹,如果不存在,请手动创建)

在这里插入图片描述
(PS:packages文件夹中存在有离线第三方依赖包,下载完成后请核对下数量)

图2:从测试服务器下载文件至本地

3. 从本地上传至目标服务器
上传至目标服务器的/home/python3/Smart_Construction-master文件夹 (注:按需上传至您的项目文件夹)

在这里插入图片描述

5.在目标服务器离线安装python项目

# 1.打开项目文件夹
cd /home/python3/Smart_Construction-master

# 2.安装pipenv依赖包
pip3 install pipenv --no-index --find-links=packages   # 从packages文件夹,安装pipenv

# 3.进入项目虚拟环境
ln -s /usr/local/python3/bin/pipenv /usr/local/bin/pipenv  # 创建pipenv指令
pipenv shell                                               # 进入虚拟环境

# 4.通过requirements.txt 批量安装依赖包
pipenv run pip3 install --no-index --find-links=packages -r requirements.txt

# 5.运行程序,搞定收工。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【考研英语语法】名词性从句

0 导言 名词性从句&#xff0c;是指一个句子相当于名词来使用&#xff0c;放到另外一个句子中。通常情况下&#xff0c;名词在句子中主要作四种成分&#xff1a;宾语、表语、主语、同位语。因此&#xff0c;名词性从句就分成四种&#xff1a;宾语从句、表语从句、主语从句、同…

迅为iTOP3568开发板Android11获取root权限关闭selinux

本文档所需资料在网盘资料“iTOP-3568 开发板\02_【iTOP-RK3568 开发板】开发资料\ 06_Android 系统开发配套资料\02_Android11 获取 root 权限配套资料”目录下。本文档参考瑞 芯微官方文档&#xff0c;在源码“Android11/rk_android11.0_sdk/RKDocs/android/patches/root”目…

SpringBoot整合Swagger2

整合Swagger2 1.Swagger介绍 前后端分离开发模式中&#xff0c;api文档是最好的沟通方式。 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 1、及时性 (接口变更后&#xff0c;能够及时准确地通知相关前后端开发人员)…

Kubernetes云原生实战00 何为云原生?

大家好&#xff0c;我是飘渺。 从今天开始我将开启第二个专栏系列&#xff0c;即 Kubernetes云原生实战 何为云原生 都2022年了&#xff0c;我相信各位肯定听过 云原生 这个词&#xff0c;但是究竟什么是云原生&#xff0c;却很少有人能真正说清楚。 如果找资料来看&#x…

广通远驰亮相2022 C-V2X“四跨”(苏州)应用示范活动

2022年11月3-4日&#xff0c;2022 C-V2X“四跨”&#xff08;苏州&#xff09;先导应用示范活动在苏州举办&#xff0c;9家国内外整车企业、22家终端企业、9家芯片模组企业、7家信息安全企业共计23个车队、47家单位参与活动演示。 深圳市广通远驰科技有限公司&#xff08;以下简…

请求转发与重定向到底有哪些区别?

一. 前言 我们知道&#xff0c;Web开发中的页面跳转&#xff0c;通常有两种跳转方式&#xff1a;重定向与请求转发。但可能有很多同学并不知道这两种跳转在细节上的区别&#xff0c;只知道都能跳转到目标页面。但实际上这两种跳转方式深入研究后&#xff0c;你会发现有很多不同…

SAML2.0 笔记(二)

文章目录一、前言二、共通内容1.1、引入依赖1.2、初始化SAML部分1.2.1、检查JCE环境1.2.2、初始化服务1.3、拦截器部分1.3.1、构建AuthnRequest1.3.2、AuthRequest解析1.3.3、SP模式选择1.3.4、IDP模式选择1.4、涉及的工具类1.4.1、OpenSAMLUtils工具类1.4.2、sp/idp Credentia…

Life-long Mapping

0.引言 主要参考自某某学院的激光slam课程。 1.Lifelong Mapping 的概念和应用 在长时间的建图过程中&#xff0c;基于图优化的 SLAM 的方法存在以下问题&#xff1a;PoseGraph 中的节点随着机器人走过的距离越来越多&#xff0c;以至于求解规模不断增大&#xff0c;影响优化…

密码学系列之九:密钥管理

密钥管理1. 密钥管理概述1.1 密钥管理的主要内容1.2 密钥管理的原则1.3 密钥管理的层次结构2. 密钥的生命周期3. 密钥分发3.1 无中心的密钥分发3.2 有中心的密钥分发4. 密钥协商技术4.1 Diffie-Hellman密钥交换协议4.2 端-端协议5. 密钥托管5.1 密钥托管密码体制基本组成5.2 托…

社区便利店销售微信APP的设计与实现(源码+论文)_kaic

目 录 1 绪论 1.1 研究背景、研究目的和研究意义 1.1.1 研究背景 1.1.2 研究目的与研究意义 1.2 国内外研究现状 2 系统开发环境 2.1 系统功能分析 2.2 系统开发平台 2.3 平台开发相关技术 2.3.1 B/S结构 2.3.2 Java技术介绍 2.3.3 Mysql数据库 2.3.4 SSM框架 2.4 微信开发者工…

Nginx模块开发之http过滤器filter

Nginx http过滤器filter模块开发一、过滤器模块简介二、Nginx相关数据结构介绍2.1、ngx_module的数据结构2.2、ngx_http_module数据结构2.3、ngx_command数据结构三、Nginx过滤器模块开发3.1、Nginx模块开发流程3.2、Nginx 模块执行3.3、示例代码3.4、编写config文件3.5、编译模…

免费嵌入 NFT 数据到任何网站或平台

Nov. 2022, Vincy Data Source: Footprint Analytics - Bingo NFT Widget Footprint Analytics 是一个用于发掘和可视化整个区块链数据的工具&#xff0c;专注于解析 NFT 和 GameFi 等数据。它使用户能够拖放界面以及使用 SQL 或 Python 建立图表和仪表盘&#xff0c;而无需编…

【附源码】计算机毕业设计JAVA学生选拔系统

【附源码】计算机毕业设计JAVA学生选拔系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA mybati…

基于Android的地图服务系统设计与实现

目 录 摘 要 I Abstract II 1绪论 1 1.1 背景及意义 1 1.2 主要方法和研究进展 1 1.3主要内容 1 1.4本论文的结构安排 1 2系统概述 2 2.1开发环境搭建 2 2.1.1 安装JDK 2 2.1.2 安装Eclipse集成开发环境 2 2.1.3 下载安装Android SDK 2 2.1.4 为Eclipse安装ADT插件 3 2.1.5 创建…

2022年最受欢迎的指纹浏览器,你知道几个?

浏览器是我们在电脑上最常使用的软件&#xff0c;以至于我们几乎忽略了它。对于用户来说&#xff0c;如果使用习惯了很难从一种浏览器切换到另一种浏览器。而指纹浏览器对于跨境人来说也是最常使用的软件工具&#xff0c;毕竟它就是为了跨境人打造的一款浏览器。那2022年这几个…

关于typescript中的extends和infer以及用法

extends extend的意思如果不是用在类的扩展中那么就表示约束在。 type Pick<T, K extends keyof T> {[P in K]: T[P]; };比如下面这个例子&#xff1a; 在Picks中K应该约束在keyof T这个类型中。 infer infer表示占位符 逆变和协变 协变&#xff1a;子类型赋给父…

云原生安全系列2:关于镜像安全必须知道的事儿

1.避免特权容器 Docker 提供了一种特权模式&#xff0c;它允许容器在本地计算机上以 root 身份运行。在特权模式下运行容器提供了该主机的功能&#xff0c;包括&#xff1a; 对所有设备的根访问权限能够篡改 AppArmor 和 SELinux 等 Linux 安全模块能够使用主机的内核功能安装…

pytorch神经网络基本骨架nn.module的使用

1.Containers 首先查看官方文档中nn.module骨架&#xff0c;其中有六个模块。 1.1Module import torch.nn as nn import torch.nn.functional as F class Module(nn.Module):def __init__(self):super(Module, self).__init__()self.conv1nn.Conv2d(1, 20, 5)self.conv2nn.C…

ESP32学习笔记 - 基于 ESP32 移植 LVGL8.3

以前写过一篇文章,讲述了如何基于ESP32 芯片移植LVGL这个GUI框架,当时是在LVGL移植好的工程lv_port_esp32上进行的,这个工程最新支持到LVGL7.9版本,关于之前的移植文章,可以参考以下链接: ESP32学习笔记 - 移植LVGL 随着LVGL不断在高频率地迭代大版本,LVGL8.x已经比以…

java基于springboot+vue的酒店预订网站——计算机毕业设计

运行环境&#xff1a; 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架springbootvue 项目介绍 民宿管理平台系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商家管理、民宿信息管理、房间类型管理、房间信息管理、…