Python离线项目迁移部署

最近遇到了一个场景:需要将Python项目文件打包到无法联网的主机上部署执行,本篇文章记录针对于该场景的处理方案。

说明:

源主机(可联网):安装了Python3和pip3

目标主机(无法联网):需安装和源主机相同的Python版本和pip3,部署执行项目文件

主机系统为centos,Python版本为3.5.2,通过虚拟环境+pip进行迁移

目标主机离线安装Python及pip3

源主机中下载所需包

Python3

首先,下载Python3,可以在官网或者通过源主机(可联网的其它主机)wget:

wget --no-check-certificate https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 

Python3依赖包

然后,需要下载Python3的依赖包,可以通过centos镜像中去copy,不过我更推荐用yum生成的方式:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel  epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel --downloadonly --downloaddir=/packages

命令执行完毕,你就会在/packages目录下发现所需的所有.rpm文件。

如果,源主机中已经安装了这些依赖,那么你可以用:

yum reinstall zlib-devel bzip2-devel openssl-devel ncurses-devel  epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel --downloadonly --downloaddir=/packages

打包:

zip -r packages.zip packages/

目标主机中安装

将Python-3.5.2.tgz和packages.zip上传至目标主机。

首先,安装Python3依赖:

unzip packages.zip
cd packages/
rpm -Uvh  *.rpm --nodeps --force 

然后,安装Python3:

tar -zxvf Python-3.5.2.tgz

mkdir /usr/local/python3
cd Python-3.5.2
./configure --prefix=/usr/local/python3                    # 将Python3安装在/usr/local/python3
make && make install                                       # 编译安装

ln -s /usr/local/python3/bin/python3 /usr/bin/python3      # 创建python3软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3            # 创建pip3软链接

安装完毕,可通过:

Python3 -V
pip3 -V

查看并检查安装的版本

源主机中打包项目文件

若项目中创建虚拟环境,首先激活虚环境,然后进入项目文件,执行:

pip3 freeze > requirements.txt 

将当前项目中的库列表生成并保存在requirements.txt中。

然后,通过pip生成批量离线安装包(whl文件):

pip wheel --wheel-dir=./tmp/packages -r requirements.txt

执行完毕之后,你会发现/tmp/packages中包含了项目所需的所有.whl

打包项目文件:

zip A.zip A/

目标主机中部署

上传A.zip至目标主机,创建虚环境,并激活(python3 自带了venv):

python3 -m venv test_venv
cd test_venv
source bin/activate

解压项目代码A.zip,并切换:

unzip A.zip
cd A/

安装项目Python依赖模块:

pip3 install --no-index --find-links=tmp/packages -r requirements

安装完毕,检查:

pip3 freeze 

当然你也可以通过python命令行import进行检验哈哈。

最后,执行项目启动脚本(startup.sh)部署:

chmod +x  ./startup.sh
nohup ./startup.sh > a-log 2>&1 &

以上,就完成了整个项目的迁移部署。

原文地址:https://www.cnblogs.com/ybjourney/p/12521070.html

时间: 2024-08-05 08:03:44

Python离线项目迁移部署的相关文章

python web项目部署

python web项目部署 python django默认启动python3 manage.py runserver 0.0.0.0:8000这种方式调用wsgiref单机模块,性能较低,生产环境不用 线上使用uwsgi工具(由c语言编写的工具,性能强悍)启动django,使用方式: 在激活虚拟环境的前提下,使用uwsgi安装配置好virtualenvwrapper工具,或者virtualenv皆可 1.准备django项目 NB_crm 2.安装虚拟环境,在虚拟环境下,安装uwsgi,进行部

Intellij Idea web项目的部署配置[转]

原文地址:http://blog.csdn.net/z69183787/article/details/41416189 1.前言 2.项目配置(Project Structure) 2.1 Project 2.2 Modules 2.3 Libraries 2.4 Facts 2.5 Artifacts 3.非Maven项目的创建部署 4.Maven项目的部署 5.总结 本文基本总结了intellij中web项目部署的问题,以及如何去配置,因为网上也没有很具体的说明,所以这些都是自己摸索出来的

jboss项目迁移至WebLogic12

1 weblogic 使用jtds-1.2.3.jar驱动链接MS SQL Server 2008的数据源配置 1.1 拷贝jtds-1.2.3.jar至D:\Oracle\Middleware\wlserver_12.1\server\lib目录下 1.2 编辑D:\Oracle\Middleware\wlserver_12.1\common\bin下的 commEnv.sh文件 找到WEBLOGIC_CLASSPATH=行加入标红内容${CLASSPATHSEP}${WL_HOME}/ser

MyEclipse使用教程:项目迁移常见问题解答

什么是项目迁移,以及为什么需要它? 在MyEclipse 2013版本中,我们改变了大部分项目的元数据来扩展IDE的功能.为了使旧项目能在MyEclipse 2013或者更高版本中正常使用,必需将一些旧项目的元数据迁移到新的格式上,但并不是所有的项目都需要迁移. 除了项目元数据的迁移,当处理WebSphere平台下的项目时,在迁移的过程中允许在适用的情况下将运行库分配给你的项目,这将有助于改变项目的WebSphere版本.在迁移过程中遇到的错误,迁移向导会给出很好的帮助. 迁移的过程不是破坏性的

在Python Web项目中使用Jenkins进行持续集成

在一个项目的开发过程中,往往会有一些需要反复执行的操作,比如编译.测试.部署.具体于Flask项目,我一般使用nose执行单元测试.fabric进行部署.pylint执行代码质量检测等.这些频繁需要执行的步骤,是非常枯燥的,那何不交给机器来自动执行呢?最近,我参与的一个校内团队也遇到了类似的问题,于是打算调研一下相关的工具. 还是习惯性地查阅了下Kenneth Reitz大神的python-guide,果然找到了关于CI的章节.选来选去,最终没有选择Python Stack的Buildbot,而

白手起家Django项目发布下篇_Django项目nginx部署

上一篇完成了python的安装,接下来安装python的依赖包和项目的依赖包 1.  python-devel 命令:yum -y install python-devel 安装Django1.8.2 pillow django-ckeditor5.4.0 pip3 install django==1.8.2 pip3 install pillow pip3 install django-ckeditor==5.4.0 python uwsgi 上面我们已经完成了python+Django环境的

32个Python爬虫项目让你一次吃到撑

整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- 豆瓣读书爬虫.可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分

Linux项目部署实验步骤 项目Linux部署上线

Linux项目部署实验步骤 项目Linux部署上线 nginx uwsgi+django 1.创建新的虚拟环境,且解决crm的环境依赖 2.在虚拟环境下安装uwsgi pip3 install uwsgi 3.uwsgi命令,如何启动python应用 启动python web文件 创建一个test.py写入如下代码 def application(env, start_response): start_response('200 OK', [('Content-Type','text/html'

crm 项目的部署

发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI.uWSGI python web服务器开发使用WSGI协议(Web Server Gateway Interface) python web项目默认会生成一个wsgi.py文件,确定好应用模块. 生产环境中使用的是uWSGI,实现了WSGI所有接口,C语言编写,效率很高的web服务器. uWSGI是一个全功能的HTTP服务器,实现了WSGI协议.uwsgi协议