python怎么做软件程序_如何打包和发布Python程序
如何打包和發布Python程序
在使用Python的過程中,我們經常需要做的一件事情就是通過pip來安裝第三方的包。那么你是否也曾想過pip安裝的包是怎么被打包并發布上去的呢?今天就來說一說Python的第三方包的打包與發布流程!
打包
想要發布一個第三方的包,首先你得有一個需要發布的項目。這個項目可以完成任何有意義的事情。比如:今天的樣例就是一個Python的測試報告第三方庫。
當我們把功能模塊已經實現好之后,就可以按照python打包的目錄結構要求來搭建了。具體步驟為:
新建一個目錄作為根目錄
把功能模塊以Python包的形式放入根目錄
在根目錄中創建setup.py文件,并填寫相應內容
在根目錄創建其它描述文件,如:LISENCE,README等
這里以PyTestReport項目為例,介紹Python打包的目錄結構,當然還可以有其它形式的目錄結構。
PyTestReport
|-- pytestreport
|-- __init__.py
|-- HTMLTestRunner.py
|-- templates
|-- default.html
|-- static
|-- css
|-- default.css
|-- js
|-- default.js
|-- test
|-- LICENSE
|-- README.md
|-- setup.py1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
上面的目錄結構就是一個典型的Python打包目錄結構。其中最重要的是setup.py文件,而這個項目的功能模塊就是pytestreport這個包。接下來最重要的就是如何編寫setup.py文件。
編寫setup.py文件
直接上PyTestReport的參考樣例,然后我們再看看幾個重要的字段就基本可以了!
#!/usr/bin/env python
# coding=utf-8
from setuptools import setup, find_packages
setup(
name="PyTestReport",
version="0.1.1",
keywords=("test report", "python unit testing"),
description="The HTML Report for Python unit testing Base on HTMLTestRunner",
long_description="The HTML Report for Python unit testing Base on HTMLTestRunner",
license="MIT",
url="https://github.com/five3/PyTestReport",
author="Xiaowu Chen",
author_email="five3@163.com",
package_dir={'pytestreport': 'pytestreport'}, # 指定哪些包的文件被映射到哪個源碼包
packages=['pytestreport'], # 需要打包的目錄。如果多個的話,可以使用find_packages()自動發現
include_package_data=True,
py_modules=[], # 需要打包的python文件列表
data_files=['pytestreport/templates/default.html', 'pytestreport/static/css/default.css', 'pytestreport/static/js/default.js'], # 打包時需要打包的數據文件
platforms="any",
install_requires=[ # 需要安裝的依賴包
'Flask>=1.0.2'
],
scripts=[], # 安裝時復制到PATH路徑的腳本文件
entry_points={
'console_scripts': [ # 配置生成命令行工具及入口
'PyTestReport.shell = pytestreport:shell',
'PyTestReport.web = pytestreport:web'
]
},
classifiers=[ # 程序的所屬分類列表
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
zip_safe=False
)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
這個文件的上半部分字段可以自行查閱即可。這里有幾個可能入坑的字段來看一下。更多詳情可參考附錄部分!
packages:需要打包的Python包目錄;注意如果有子包則必須顯式的列出來,如:pytestreport.api
data_files:需要打包的非.py文件;
entry_points:指定安裝包之后的程序入口腳本;比如:pip命令就是通過這種方式創建的
編譯
項目目錄結構和setup.py文件都就緒之后,就可以開始編譯并打包了;首先最好升級下打包相關的基礎庫。
python -m pip install --upgrade pip
pip install --upgrade setuptools wheel1
2
接著,從命令行進入項目的根目錄,通過如下命令即可進行編譯打包操作:
python setup.py sdist # 打源碼包
python setup.py bdist # 打二進制包
python setup.py bdist_egg # 打egg包
python setup.py bdist_wheel # 打wheel包1
2
3
4
執行完命令之后,會在項目的根目錄創建一個dist目錄,所有打包的文件都存放在此目錄下。
在打包后,可以本地進行安裝和使用測試,當然你也可以通過如下命令直接安裝:
python setup.py build
python setup.py install1
2
發布
當我們的項目打包并測試完成之后,就可以開始發布之旅了!首先你得需要安裝另一個基礎庫。
pip install twine1
此外,你還需要在PYPI的官網上進行賬號的注冊!當然官方會建議你先在一個叫TestPYPI的測試鏡像服務上先進行預發布。當在TestPYPI服務上發布成功并進行完安裝和使用測試之后,再把項目包發布到PYPI服務上。
TestPYPI發布
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
# entry your username and password1
2
過程中會需要你輸入注冊的賬號信息,等上傳完成之后可以通過如下的方式來進行包的安裝。
pip install --index-url https://test.pypi.org/simple/ PyTestReport1
你也可以直接通過https://test.pypi.org/manage/projects/來查看你已經上傳的項目,并通過點擊[View]來查看項目的具體信息。
安裝完成之后,則需要測試下安裝包是否能正常的工作,指定的入口腳本是否安裝并正常使用,如果一切正常那么恭喜你了發布到正式的PYPI服務了!
PYPI發布
twine upload dist/*
# entry your username and password1
2
上傳完成之后通過如下命令可直接安裝:
pip install PyTestReport1
附錄
新書推薦
獲取更多關于Python和自動化測試的文章,請掃描如下二維碼!
總結
以上是生活随笔為你收集整理的python怎么做软件程序_如何打包和发布Python程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 皇冠山自然保护区环保标语文案28句
- 下一篇: python读取文件夹下所有图片_pyt