python怎么打包整个项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么打包整个项目相关的知识,希望对你有一定的参考价值。

参考技术A

distutils - Python自带的基本安装工具, 适用于非常简单的应用场景使用, 不支持依赖包的安装 

通过distutils来打包,生成安装包,安装python包等工作,需要编写名为setup.py python脚本文件。

setuptools - 针对 distutils 做了大量扩展, 尤其是加入了包依赖机制。不支持python3,安装完setuptools后会有easy_install

distribute - 类似于setuptools,支持python3,安装完distribute后会有easy_install。

easy_install - setuptools 和 distribute 自带的安装脚本, 也就是一旦setuptools或distribute安装完毕, easy_install 也便可用了。

pip - 目标是取代easy_install。easy_install 有很多不足: 安装事务是非原子操作, 只支持 svn, 没有提供卸载命令, 安装一系列包时需要写

脚本; pip 解决了以上问题, 已俨然成为新的事实标准, virtualenv 与它已经成为一对好搭档;

distutils2 - setuptools 和 distribute 的诞生是因为 distutils 的不济, 进而导致目前分化的状况。它将成为 Python 3.3 的标准库 

packaging , 并在其它版本中以distutils2 的身份出现; 换句话说, 它和 pip 将联手结束目前混乱的状况。

virtualenv - 用来创建隔离的python环境,处理python环境的多版本和模块依赖。

常识 

sudo apt-get install 安装的package存放在 /usr/lib/python2.7/dist-packages目录中

pip 或者 easy_install安装的package存放在/usr/local/lib/python2.7/dist-packages目录中

手动从源代码安装的package存放在site-packages目录中。

更多学习内容,请点击Python学习网!

Python Flask项目在Gitlab CI中自动打包Docker镜像

参考技术A 第一步,在Gitlab中新建一个项目

第二步,克隆支本地

第三步,本地调通Python Flask项目

用VSCode打开该项目,先用flask在app.py下写了一个hello world:

然后在index.html中写下hello world,放在templates目录下:

安装flask依赖

用以下命令进行本地运行

打开浏览器进入localhost:5000即可看到Hello World

本地调试成功

第四步,本地调通Docker打包与容器运行

于是尝试利用docker打包成镜像,由于该项目依赖flask库,所以在根目录添加了requirements.txt文件,里面标明了依赖库以及相应的版本

然后编写好了Dockerfile

运行命令开始打包:

打包成功,运行容器:

在浏览器浏览localhost没有响应

查看日志发现没有报错

再尝试用浏览器打开127.0.0.1,也不行

网上搜索发现python flask在服务器不能直接运行,需要借助gunicorn

于是编写了配置文件gunicorn.conf.py:

同时修改了Dockerfile:

以及修改了依赖包requirements.txt:

再打包镜像、运行容器,发现可以正常运作了:

第五步,Gitlab CI设置脚本自动打包Docker镜像

由于自建Docker镜像仓库和账号是隐私信息,因此使用Gitlab CI变量代替,再在项目CI/CD设置内赋值

以上是关于python怎么打包整个项目的主要内容,如果未能解决你的问题,请参考以下文章

前端打包,怎么只替换修改的文件,而不是整个项目替换?

Python虚拟环境下使用Pyinstaller打包

Python Flask项目在Gitlab CI中自动打包Docker镜像

新人求助,打包WEBGL怎么运行

vue项目打包出现空白页

vue 项目打包出错小记