Docker是一个开源的容器平台,可以用于构建、发布和运行Python应用程序。下面是一个大致的构建和发布Python应用程序的步骤:
构建Docker镜像:首先需要构建Docker镜像,它是用于打包应用程序及其所有依赖项的容器。Docker镜像是通过Dockerfile定义的,Dockerfile是一个文本文件,包含了容器如何被构建的说明。
在Docker中运行应用程序:通过运行Docker镜像创建Docker容器,在Docker容器中运行Python应用程序。
发布Docker镜像:将Docker镜像上传到Docker仓库,供他人使用。可以使用Docker Hub或私有Docker仓库等。
部署Docker容器:将Docker镜像从仓库下载到生产环境,并在生产环境中运行Docker容器,以部署Python应用程序。
这些步骤可以通过脚本自动化来完成,例如使用CI/CD工具(如Jenkins、Travis CI等)。这样,每次代码提交时,可以自动构建、测试、发布和部署应用程序,从而实现快速和高效的交付。
发布自己的python包1. 首先先去PyPI注册帐号
2. 配置~/.pypirc如下:
[distutils]
index-servers =
pypi
pypitest
[pypi]
username:ShaoZhengjiang
password:mypassword
[pypitest]
username:ShaoZhengjiang
password:mypassword
3. 然后注册并上传自己的包到测试服务器
pypi提供了一个测试服务器,我们可以在这个测试服务器上做测试。
python setup.py register -r pypitest
然后
python setup.py sdist upload -r pypitest
若没有问题我们应该不会得到任何错误。
4. 上传至PyPI
若上面的测试成功,我们就可以按照相同的步骤将包注册并上传。
python setup.py register -r pypi
python setup.py sdist upload -r pypi
Ok,之后我们就可以在PyPI上看到我们自己的包了。(https://pypi.python.org/pypi/vaspy/)
1、下载并安装py2exe,可下载最新版本。2、编写安装脚本,比较简单,不过多解释,如下:
Screenshot_setup.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
includes = ["encodings", "encodings.*"]
data_files = ['CameraDll.dll']
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes
}
}
setup(
version = "1.0",
description = "Screenshot Tool",
name = "Screenshot Tool",
options = options,
zipfile=None,
data_files = data_files,
console=[{"script": "Screenshot.py", "icon_resources": [(1, "Screenshot.ico")] }]
)
各参数含义见第5小节或执行python命令行下执行help(py2exe)查看。
3、打包程序:
a、将要找包的程序、文件和打包脚本放在同一目录下,如下:
E:\tmp\pyexe_tmp>tree /F
文件夹 PATH 列表
卷序列号码为 0007F240 101F:F68D
E:.
CameraDll.dll
screenshot.ico
Screenshot.py
screenshot_setup.py
没有子文件夹
E:\tmp\pyexe_tmp>
b、执行打包脚本:
E:\tmp\pyexe_tmp>python screenshot_setup.py py2exe
python screenshot_setup.py py2exe
running py2exe
creating E:\tmp\pyexe_tmp\build
creating E:\tmp\pyexe_tmp\build\bdist.win32
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\collect-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\bundle-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\temp
creating E:\tmp\pyexe_tmp\dist
*** searching for required modules ***
*** parsing results ***
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
writing byte-compilation script 'e:\tmp\tmp1ecbcw.py'