當前位置:首頁 » 編程語言 » python程序發布

python程序發布

發布時間: 2022-12-07 06:25:25

python是什麼Python可以干什麼

Python(發音:英[ˈpaɪθən],美[ˈpaɪθɑ:n]),是一種易學且功能強大的編程語言。

這種語言的名字(Python意為「蟒蛇」)來自於BBC節目「Monty Python的飛行馬戲團」,而與爬行動物沒有關系。在文檔中用Monty Python來開玩笑不只是可以的,還是可以推薦的!

Python具有高級有效的數據結構和簡單有效的面向對象編程。

Python優雅的語法和動態類型,加上它的解釋性,使它成為很多編程平台開放開源和快速開發應用的理想語言。

Python 解釋器及豐富的標准庫以源碼或機器碼的形式提供,可以到 Python 官網 www.python.org 免費獲取。在下載時要注意你所使用的操作系統類型。在這個官方網站上還提供了許多免費的第三方 Python 模塊、程序和工具以及附加文檔的發布頁面或鏈接。

Python很容易使用,但它是一種真正的編程語言,提供了很多數據結構,也支持大型程序,遠超shell腳本或批處理文件的功能。Python還提供比C語言更多的錯誤檢查,而且作為一種「超高級語言」,它有高級的內置數據類型,比如靈活的數組和字典。正因為這些更加通用的數據類型,Python能夠應付更多的問題,超過Awk甚至Perl,而且很多東西在Python中至少和那些語言同樣簡單。

Python 允許你劃分程序模塊,在其他的 Python 程序中重用。它內置了很多的標准模塊,你可以在此基礎上開發程序——也可以作為例子,開始學習 Python 編程。例如,文件輸入輸出,系統調用,套接字,甚至圖形界面介面工作包比如 Tk 。

Python是一種解釋型語言,在程序開發階段可以為你節省大量時間,因為不需要編譯和鏈接。解釋器可以互動式使用,這樣就可以方便地嘗試語言特性,寫一些一次性的程序,或者在自下向上的程序開發中測試功能。

Python也是一個順手的桌面計算器。

Python程序的書寫是緊湊而易讀的。Python代碼通常比同樣功能的C,C++,Java代碼要短很多,原因列舉如下:

(1)高級數據類型允許在一個表達式中表示復雜的操作;

(2)代碼塊的劃分是按照縮進而不是成對的花括弧;

(3)不需要預先定義變數或參數。

Python是「可擴展的」:如果你知道怎麼寫C語言程序,就能很容易地給解釋器添加新的內置函數或模塊,不論是讓關鍵的程序以最高速度運行,還是把Python程序鏈接到只提供預編譯程序的庫(比如硬體相關的圖形庫)。一旦你真正鏈接上了,就能在Python解釋器中擴展或者控制C語言編寫的應用了。

Python本身提供了非常完善的基礎代碼庫,覆蓋了網路、文件、GUI、資料庫、文本等大量內容。所以,使用Python開發程序,你不必從0開始做,使用基礎代碼庫或第三方庫就可以輕松幫助你完成大量的工作。

在實際中,許多大型網站就是用Python開發的,例如YouTube、Instagram,還有國內的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美國航空航天局)都在大量地使用Python。因此,你學習或使用Python並不孤單。

但是,Python並不是完美的,也並非萬能的。它的第一個缺點就是運行速度慢,由於Python是解釋型語言,與其它編譯型語言比起來要慢得多,不過當前的計算機硬體和網路設備的性能改善很多,而且很多情況下,你不需要那麼快的速度去做工作,Python的慢性子是可以忍受的。

它的第二個缺點就是代碼是可見的,你編寫的Python程序共享給其他人時,其他人是可以看到源代碼的,這一方面是由於Python的宗旨是開源共享,另外一方面是它是解釋型的,拿過來,用你的Python解釋器直接解釋運行就可以了,沒必要封裝編譯成機器代碼。

(註:本文整理了官方文檔與網路其它文檔中的一些內容)

本號將在今後逐步發布Python方面的文章,希望你能收藏關注本號,有空來看看,留下你的足跡,給本站前行的動力。

微信搜索 「優雅的代碼」 關注本站的公眾號,以獲取最新內容。

個人成長離不開各位的關注,你的關注就是我繼續前行的動力。

❷ 如何發布一個Python命令行工具

本文的目的也是非常簡單:
寫一個Python命令行工具,並且發布到PIP上面.並且在這個過程中給出我自己的一些思考.
如何分解這個發布任務?
只需要進行如下的兩個步驟便可以:
1.寫好一個Python命令行工具.
2.發布它.
當然,這樣不夠細致.再細分一下.
1.寫好一個Python命令行工具
1.1.命令行的特點,以及Python的如何編寫命令行
1.2.如何組織代碼結構.
2.發布
2.1.注冊pypi賬戶
2.2.注冊在賬戶下面注冊Python包
2.3.上傳打包好的Python命令行工具.
3.完善代碼
1.寫好一個Python命令行工具
寫好一個命令行工具首先要知道命令行工具是什麼?
在我看來,命令行工具就是一種完成某種類型的任務的終端程序.
也就是基本上沒有什麼用戶界面的程序.
由於基本上沒有什麼用戶界面,所以導致單個命令行的交互能力及其低下.但這種低下的交互性對於一些固定工作而言,簡直就是最靈活的工具.只需要輸入一些命令便可以完成某種類型的工作.實在是方便的很.
所以,某種程度上,終端程序低交互的缺點反而成了優點.
1.1.Python的如何編寫一個簡單的命令行
對於Python和命令行交互,我們很容易想出一個比較方便的方案.
sys.argv就是這樣的嘛!
我們很容易這樣寫代碼.

1

python testargv.py thisisaargv1

甚至我們也可以這樣寫命令行,

1

python testargv.py thisisaargv1 -d -f 0

那麼,這樣寫的後果就是,不方便解析出(不是不能,是不方便) -d -f 0 以及 thisisaargv1.
不信的話,你解析一個下面場景的命令行試試,

1
2
3
4

# 用戶可能這樣輸入
danmu.fm -q 1 -v 2
danmu.fm -q 1 -v 2
# 當然,肯定還有漏寫啦,等等,你得需要轉類型,增加各種blablabla的描述吧,添加默認的參數值吧.

於是Python就提供了一個非常好用的模塊可以使用.叫做argparse.
上面的描述就變成了這個樣子

Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

import argparse

APP_DESC="""
這就是描述
"""
print(APP_DESC)
if len(sys.argv) == 1:
sys.argv.append('--help')
parser = argparse.ArgumentParser()
parser.add_argument('-q','--quality',type=int,default=0,help="download video quality : 1 for the standard-definition; 3 for the super-definition")
parser.add_argument('-v','--verbose', default=0,help="print more debuging information")
parser.add_argument('-s','--store',help="保存流媒體文件到指定位置")
parser.add_argument('-c','--config',default=0,help="讀取~/.danmu.fm配置,請~/.danmu.fm指定資料庫")
parser.add_argument('url',metavar='URL',nargs='+', help="zhubo page URL (*/)")
args = parser.parse_args()
# 獲取對應參數只需要args.quality,args.url之類.
url = (args.url)[0]
print(url)
#其他執行邏輯

保存為danmu.py
這樣就可以執行命令

1

python danmu.py -q 1 -v 2

通過args就可以獲取參數,然後進行終端程序的參數初始化.
可是這和我們的要求還是不同嘛,我們不想多寫Python XXX,我們想直接XXX.就像這樣.

1

danmu.fm -q 1 -v 2

不急,下面就是了.
1.2.如何組織代碼結構.
於是,現在就要開始組織代碼結構了.
我們在最終的代碼目錄大概是這樣的.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

danmu.fm
├── README.md
├── danmufm
│ ├── __init__.py
│ ├── client
│ │ ├── __init__.py
│ │ ├── __init__.pyc
│ │ ├── douyu_client.py
│ │ └── douyu_danmu_client.py
│ ├── danmu.py
│ ├── misc
│ │ ├── __init__.py
│ │ ├── color_printer.py
│ │ ├── downloaders.py
│ │ └── player.py
│ └── model
│ ├── __init__.py
│ └── douyu_msg.py
├── docs
├── setup.cfg
├── setup.py
├── sh.py
└── tests

這就是我上次寫的danmu.fm的代碼目錄.
聰明的你這時候你注意到了:
主要的程序不是放在根目錄下面,而是放在第二目錄danmufm下面.
2.setup.cfg 是什麼鬼東西
3.setup.py 是什麼鬼東西
對於上面幾點,我們分別進行解釋
1.2.1 為什麼主要程序在第二目錄下
為了把主要的程序分離出來,放在第二目錄下面,這樣的待會打包以後多出很多文件夾就不會對源碼造成干擾.
當然,由於把程序放在了第二目錄下面,所以,腳本裡面的from import語句應該使用相對路徑導入.
相對路徑導入的的時候需要注意運行的時候使用如下命令

1

python3 -m danmufm.danmu [xxxx]

1.2.2 setup.cfg
填寫如下內容即可.

1
2

[metadata]
description-file = README.md

然後去寫Markdown的Readme就好了.
1.2.3 setup.py
這個是重頭戲了.
setup這個py文件就是打包配置文件.對這個程序是誰的,有什麼依賴,入口是什麼,等等等等的配置.

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

#-*- encoding: UTF-8 -*-
from setuptools import setup, find_packages
"""
打包的用的setup必須引入,
"""

VERSION = '0.1.1'

setup(name='danmu.fm',
version=VERSION,
description="a tiny and smart cli player of douyutv,ximalayad,anmu based on Python",
long_description='just enjoy',
classifiers=[], # Get strings from ?%3Aaction=list_classifiers
keywords='python douyu danmu danmu.fm terminal',
author='twocucao',
author_email='[email protected]',
url='',
license='MIT',
packages=find_packages(),
include_package_data=True,
zip_safe=True,
install_requires=[
'requests',
],
entry_points={
'console_scripts':[
'danmu.fm = danmufm.danmu:main'
]
},
)

官方有distutils這個包管理器工具,設置也非常的簡單,只是,它不支持entry_points屬性,由於無法使用entry_point,也就無法通過命令來跳轉到指定模塊運行程序,這也就意味著,官方工具不方便寫成命令行.還是setuptools好.
上面需要注意的就是install_requires可以添加依賴.其他的你猜都可以猜出來是做什麼的.自己去看代碼,我就不多說了.
2.發布
所謂的發布,就是將打包好的程序的某個版本發布到某個倉庫中.
2.1.注冊pypi賬戶
到這個上面注冊賬號:

2.2.注冊在賬戶下面注冊Python包
進入對應項目根文件,然後執行

1

python3 setup.py register

這一步程序會讓你輸入剛剛注冊的賬號和密碼,然後注冊該包.注冊該包以後,你就有了一個小倉庫.可以存放不同版本的danmu.fm.
注冊的倉庫是可以在這個地址看到的,

2.3.上傳打包好的Python命令行工具.
這里需要藉助一個小工具,twine.twine是一個更加安全方便上傳打包好的代碼的工具.

1

pip3 install twine

接著開始打包,打包成兩個版本,一個是不需要build的版本,另一個是需要build的版本(順帶吐槽下,這兩個詭異的命名).

1

python setup.py sdist bdist_wheel

於是剩下來的就顯而易見了,上傳build完畢的程序到倉庫中.

1

twine upload dist/danmu.fm-0.1.2*

於是,安裝一下,測試是否成功

1

pip3 install danmu.fm --upgrade

命令行的工具是這樣使用的.

1

danmu.fm -q 2 -v 1

3.完善
不斷的完善代碼,然後打包終端程序發布到倉庫給別人用,這就是整個的PIP打包發布流程.
這個時候,你可能需要使用版本控制軟體.
你可能需要增多的代碼的測試.

❸ 如何發布python程序


如何發布一個Python程序:

1、安裝一個pyInstaller

在pycharm里點 file—–>setting—–>Project workspace——>Interpreter——>點pip右邊的+號,進入下面這個界面:

搜索pyInstaller, 點擊左下方Install package安裝(出現錯誤了可以多安裝幾次)

(或者在命令提示符界面 用 pip install pyinstaller命令安裝)

2、將.py文件打包成.exe文件

在完成第一步的安裝後,就開始我們的打包。在打包之前可以先運行一下你要打包的.py文件是否可以運行,然後進行打包。

在pycharm中右鍵點擊你將要打包的文件,找到Open in terminal點一下。

在下面出現的Local框內輸入命令:pyinstaller -F 文件名,運行。

然後進行打包

打包完成後,稍等一下會刷新出一個dist文件夾, 點擊 ,在裡面有一個 .exe文件,右鍵,點擊裡面的 Show in Explore 找到一個.exe文件(如果不一樣的可以看一下你下面打包成功後出現的路徑。)

3、發送

將打包好的.exe文件拉到你之前.py文件所在的文件夾,將所有需要的素材一起發送。

別人收到後就能打開你的.exe文件運行你的程序。

眾多python培訓視頻,盡在python學習網,歡迎在線學習!

❹ 如何將自己的Python代碼打包發布到pypi上

    什麼是pypi

    簡單的說pypi是一個python包的倉庫,裡面有很多別人寫好的python庫,你可以通過easy_install或者pip進行安裝,方便用戶更方面的使用你的代碼模塊。

    將代碼打包並上傳到pypi上,大體上分為以下幾步:

    1、整理代碼的目錄結構,方便打包和python的import,為了方便引用,需要將代碼模塊變成一個包,所以需要將功能代碼用目錄來整合方便引用,並且需要創建__init__文件,__init__中可以沒有內容,也可以在__init__文件中進行import(from .extractor import Document)操作,以減少整體模塊引用時import的層數,避免錯誤。

[html]viewplain
├──./tidypage
│├──./tidypage/cleaners.py
│├──./tidypage/extractor.py
│├──./tidypage/__init__.py
│└──./tidypage/titles.py

    2、功能模塊的目錄整理好後,就可以開始整理和添加發布到pypi上所使用的文件了

tidy_page
├──LICENSE
├──README.rst
├──requirements.txt
├──setup.py
├──tidypage
│├──cleaners.py
│├──extractor.py
│├──__init__.py
│└──titles.py
  • 就是將原來的目錄深移一層,文件夾名稱可以根據自己意願。然後在到第一層的目錄下創建些特殊文件,具體你可以看看下面這個文件結構你就明白了

    LICENSE文件是授權文件,比如:MIT license, APACHElicense

    README.rst 文件想必大家都不陌生,其實就是項目介紹和使用說明

    setup文件才是重點,是python模塊安裝所需要的文件,它的格式如下:

#!/usr/bin/envpython
from__future__importprint_function
fromsetuptoolsimportsetup,find_packages
importsys

setup(
name="tidy-page",
version="0.1.1",
author="DesionWang",
author_email="[email protected]",
description="htmltextparser,getthecontentformhtmlpage",
long_description=open("README.rst").read(),
license="MIT",
url="https://github.com/desion/tidy_page",
packages=['tidypage'],
install_requires=[
"beautifulsoup4",
lxml_requirement
],
classifiers=[
"Environment::WebEnvironment",
"IntendedAudience::Developers",
"OperatingSystem::OSIndependent",
"Topic::TextProcessing::Indexing",
"Topic::Utilities",
"Topic::Internet",
"Topic::SoftwareDevelopment::Libraries::PythonMoles",
"ProgrammingLanguage::Python",
"ProgrammingLanguage::Python::2",
"ProgrammingLanguage::Python::2.6",
"ProgrammingLanguage::Python::2.7",
],
)
  • NAME名字,一般放你包的名字即可PACKAGES包含的包,可以多個,這是一個列表DESCRIPTION關於這個包的描述LONG_DESCRIPTION參見read方法說明KEYWORDS關於當前包的一些關鍵字,方便PyPI進行分類。AUTHOR誰是這個包的作者,寫誰的名字吧AUTHOR_EMAIL作者的郵件地址URL你這個包的項目地址,如果有,給一個吧,沒有你直接填寫在PyPI你這個包的地址也是可以的VERSION當前包的版本,這個按你自己需要的版本控制方式來LICENSE授權方式INSTALL_REQUIRES模塊所依賴的python模塊
  • 文中的classifiers的內容並不是隨便填寫的,你需要參照本文參考文檔中的PyPI Classifiers來寫

    3、開始使用Distutils進行打包

    為了保證效果,在打包之前我們可以驗證setup.py的正確性,執行下面的代碼

    python setup.py check

  • 輸出一般是running check如果有錯誤或者警告,就會在此之後顯示沒有任何顯示表示Distutils認可你這個setup.py文件。


  • 如果沒有問題,那麼就可以正式打包,執行下面的代碼:


  • python setup.py sdist



  • 執行完成後,會在頂層目錄下生成dist目錄和egg目錄

tidy_page
├──tidy_page/dist
│├──tidy_page/dist/tidy-page-0.1.0.tar.gz
│└──tidy_page/dist/tidy-page-0.1.1.tar.gz
├──tidy_page/LICENSE
├──tidy_page/README.rst
├──tidy_page/setup.py
├──tidy_page/tidypage
│├──tidy_page/tidypage/cleaners.py
│├──tidy_page/tidypage/extractor.py
│├──tidy_page/tidypage/__init__.py
│└──tidy_page/tidypage/titles.py
├──tidy_page/tidy_page.egg-info
│├──tidy_page/tidy_page.egg-info/dependency_links.txt
│├──tidy_page/tidy_page.egg-info/PKG-INFO
│├──tidy_page/tidy_page.egg-info/requires.txt
│├──tidy_page/tidy_page.egg-info/SOURCES.txt
│└──tidy_page/tidy_page.egg-info/top_level.txt

  • 4、打包完成後就可以准備將打包好的模塊上傳到pypi了,首先你需要在pypi上進行注冊gotoPyPI Live

    注冊完成後,你需要在本地創建好pypi的配置文件,不然有可能會出現使用http無法上傳到pypi的問題

    Create a.pypircconfiguration file,在用戶的home目錄下創建.pypirc文件,文件的內容如下

  • [distutils]index-servers=pypi[pypi]repository=https://pypi.python.org/pypiusername=your_usernamepassword=your_passwor
chmod600~/.pypirc
pythonsetup.pyregister-rpypi
  • 在pypi上注冊模塊

  • python setup.py sdist upload -r pypi

  • 上傳python文件包,沒有問題你就可以在pypi上看到你上傳的包了並且可以使用pip搜索和install你的python包了


❺ 如何將python開發的程序打包發布

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 moles ***
*** parsing results ***
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
writing byte-compilation script 'e:\tmp\tmp1ecbcw.py'

❻ python的特點

Python是一個高層次的結合解釋性、編譯性、互動性和面向對象的腳本語言。Python的設計具有很強的可讀性,和其他語言經常使用英文關鍵詞,要比其他語言更加具有特色語法結構。
Python編程語言的特點:
首先,簡單易學:Python是一種代表簡單主義的語言,閱讀一個良好的Python程序,即便是在Python語法要求非常嚴格的大環境下,給人的感覺也是不同。Python最大優點之一,具有偽代碼的特質,可以讓我們在Python開發程序時,專注於解決問題。
其次,免費開源:python 是 FLOSS(自由/開源源碼軟體)之一,簡單的倆說,用戶使用Python進行開發或者發布自己編寫的程序,不需要支付任何的費用,也不用擔心版權問題,作為商業用途,Python也是免費的,開源正在成為軟體行業的一種發展趨勢。
然後,高級語言:Python是高級的語言,因此當使用Python語言編寫程序的時候,無需考慮底層細節方面的問題,一個用編譯型語言寫的程序,可以從源文件轉換到一個計算機使用的語言。
再次:可移植性: Python 是開源的,它已經被移植到許多平台上。也就是說Python程序無需修改可以再很多平台上運行,包含Linux、Windows等。
最後:強大的功能:Python 強大的功能也許才是很多用戶支持 Python 的最重要的原因,從字元串處理到復雜的 3D 圖形編程,Python 藉助擴展模塊都可以輕松完成。

熱點內容
小米原生android 發布:2023-02-09 05:12:56 瀏覽:749
android代碼模板 發布:2023-02-09 05:10:18 瀏覽:982
qt編譯oracle 發布:2023-02-09 05:10:13 瀏覽:579
如何暫停伺服器發生錯誤的服務 發布:2023-02-09 05:08:59 瀏覽:446
無線路由登錄密碼怎麼設置 發布:2023-02-09 04:59:05 瀏覽:143
解壓歌曲我要愛你一輩子 發布:2023-02-09 04:57:18 瀏覽:418
安卓版西遊記2如何插卡 發布:2023-02-09 04:56:24 瀏覽:378
什麼情況要配置推車式滅火器 發布:2023-02-09 04:55:30 瀏覽:105
php無法運行 發布:2023-02-09 04:55:27 瀏覽:465
cuda存儲器 發布:2023-02-09 04:53:21 瀏覽:865