python怎么打包整个项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python怎么打包整个项目相关的知识,希望对你有一定的参考价值。
参考技术Adistutils - 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怎么打包整个项目的主要内容,如果未能解决你的问题,请参考以下文章