日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python怎么做软件程序_如何打包和发布Python程序

發布時間:2023/12/31 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。