python管理工具有哪些?
常見(jiàn)的python管理工具有以下幾種
1.Pipenv
Pipenv是一款旨在將所有包管理工具的優(yōu)點(diǎn)集中利用于python領(lǐng)域中的工具,兼容性高,使用Pipenv可以自動(dòng)創(chuàng)建項(xiàng)目和管理虛擬環(huán)境,且安裝或刪除包時(shí)會(huì)自動(dòng)在Pipfile中添加和移除相應(yīng)的包。
2.PIP
PIP是一個(gè)通用的python包管理工具,PIP提供了對(duì)python包的查找、下載、安裝、卸載等功能。
3.Distutils
Distutils是python標(biāo)準(zhǔn)庫(kù)的一部份,其為開(kāi)發(fā)者提供一種方便的打包方式,為使用者提供方便的安裝方式。
除了pip之外,Python還有其他一些包管理工具。以下是其中一些常用的包管理工具:
Anaconda: Anaconda是一個(gè)流行的Python數(shù)據(jù)科學(xué)平臺(tái),其中包括Conda包管理器,它可以用于安裝和管理Python包、環(huán)境和依賴項(xiàng)。與pip不同,Conda還可以管理非Python依賴項(xiàng),并且可以創(chuàng)建和管理虛擬環(huán)境。
easy_install: easy_install是Python的另一個(gè)包管理工具,它可以從PyPI(Python包索引)中安裝Python包,但功能相對(duì)較弱,目前已經(jīng)逐漸被pip所取代。
Poetry: Poetry是一個(gè)相對(duì)較新的包管理工具,旨在解決pip的一些限制和缺點(diǎn)。它可以創(chuàng)建、管理和發(fā)布Python包,并管理依賴項(xiàng)和虛擬環(huán)境。
PEP 517/518: PEP 517和PEP 518是Python的兩個(gè)官方規(guī)范,它們定義了一種新的方式來(lái)構(gòu)建、打包和分發(fā)Python包。它們不是包管理工具,而是提供了一種標(biāo)準(zhǔn)的方法,使得其他包管理工具可以更輕松地與Python包集成。
雖然pip是Python中最流行和常用的包管理工具,但是根據(jù)不同的需求和場(chǎng)景,其他包管理工具也可能更適合您的需求。
Python 歷時(shí)這么久以來(lái)至今還未有一個(gè)事實(shí)上標(biāo)準(zhǔn)的項(xiàng)目管理及構(gòu)建工具,以至于造成 Python 項(xiàng)目的結(jié)構(gòu)與構(gòu)建方式五花八門(mén)。這或許是體現(xiàn)了 Python 的自由意志。
不像 Java 在經(jīng)歷了最初的手工構(gòu)建,到半自動(dòng)化的 Ant, 再到 Maven 基本就是事實(shí)上的標(biāo)準(zhǔn)了。其間 Maven 還接受了其他的 Gradle(Android 項(xiàng)目主推), SBT(主要是 Scala 項(xiàng)目), Ant+Ivy, Buildr 等的挑戰(zhàn),但都很難撼動(dòng) Maven 的江湖地位,而且其他的差不多遵循了 Maven 的目錄布局。
回到 Python,產(chǎn)生過(guò) pip, pipenv, conda 那樣的包管理工具,但對(duì)項(xiàng)目的目錄布局沒(méi)有任何約定。
關(guān)于構(gòu)建很多還是延續(xù)了傳統(tǒng)的 Makefile 的方式,再就是加上 setup.py 和 build.py 用程序代碼來(lái)進(jìn)行安裝與構(gòu)建。關(guān)于項(xiàng)目目錄布局,有做成項(xiàng)目模板的,然后做成工具來(lái)應(yīng)用項(xiàng)目模板。
下面大概瀏覽一下四個(gè)工具的使用
CookieCutter
PyScaffold
PyBuilder
Poetry
CookieCutter 一個(gè)經(jīng)典的 Python 項(xiàng)目目錄結(jié)構(gòu)
$ pip install cookiecutter
$ cookiecutter gh:audreyr/cookiecutter-pypackage
# 以 github 上的 audreyr/cookiecutter-pypackage 為模板,再回答一堆的問(wèn)題生成一個(gè) Python 項(xiàng)目
......
project_name [Python Boilerplate]: sample
......
最后由 cookiecutter 生成的項(xiàng)目模板是下面的樣子:
$ tree sample
sample
├── AUTHORS.rst
├── CONTRIBUTING.rst
├── HISTORY.rst
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README.rst
├── docs
│ ├── Makefile
│ ├── authors.rst
│ ├── conf.py
│ ├── contributing.rst
│ ├── history.rst
│ ├── index.rst
│ ├── installation.rst
│ ├── make.bat
│ ├── readme.rst
│ └── usage.rst
├── requirements_dev.txt
├── sample
│ ├── __init__.py
│ ├── cli.py
│ └── sample.py
├── setup.cfg
├── setup.py
├── tests
│ ├── __init__.py
│ └── test_sample.py
└── tox.ini
3 directories, 26 files
這大概是當(dāng)前比較流行的目錄結(jié)構(gòu)的主體框架,主要元素是:
$ tree sample
sample
├── Makefile
├── README.rst
├── docs
│ └── index.rst
├── requirements.txt
├── sample
│ ├── __init__.py
│ └── sample.py
├── setup.cfg
├── setup.py
└── tests
├── __init__.py
└── test_sample.py
項(xiàng)目 sample 目錄中重復(fù) sample 目錄中放置 Python 源文件,tests 目錄中是測(cè)試文件,再加一個(gè) docs 目錄放文檔,README.rst, 其他的用于構(gòu)建的 setup, setup.cfg 和 Makefile 文件。
ython可以進(jìn)行Web應(yīng)用開(kāi)發(fā)、數(shù)據(jù)分析與挖掘、AI應(yīng)用程序設(shè)計(jì)開(kāi)發(fā)、網(wǎng)絡(luò)爬蟲(chóng)應(yīng)用編寫(xiě)、嵌入式應(yīng)用開(kāi)發(fā)、網(wǎng)絡(luò)安全應(yīng)用開(kāi)發(fā)、桌面應(yīng)用開(kāi)發(fā)、自動(dòng)化運(yùn)維設(shè)計(jì)、游戲開(kāi)發(fā)等。下面,詳細(xì)介紹Python可以做什么。
Python是什么?
Python是一門(mén)編程語(yǔ)言。20世紀(jì)80年代,“仁慈的獨(dú)裁者”荷蘭人Guido van Rossum創(chuàng)造出這門(mén)語(yǔ)言。作為一門(mén)高級(jí)程序設(shè)計(jì)語(yǔ)言,Python憑借其簡(jiǎn)潔、易讀及可擴(kuò)展性日漸成為備受程序設(shè)計(jì)開(kāi)發(fā)者推崇的語(yǔ)言。
截止目前,這門(mén)編程語(yǔ)言已躍居世界編程榜第一名。如下圖:
本質(zhì)上來(lái)講,Python是一門(mén)具備動(dòng)態(tài)語(yǔ)義、面向?qū)ο蟮慕忉屝透呒?jí)編程語(yǔ)言。早期,由于自身特性,Python經(jīng)常作為腳本語(yǔ)言和“粘合劑”語(yǔ)言來(lái)使用。但隨其版本的不斷更新,這款語(yǔ)言逐漸被用來(lái)開(kāi)發(fā)一些大型應(yīng)用。
總體來(lái)講,Python在開(kāi)發(fā)應(yīng)用程序中,相比其它編程語(yǔ)言,有如下特點(diǎn):
簡(jiǎn)單易學(xué),適合大多數(shù)人學(xué)習(xí),不限于學(xué)生
跨平臺(tái),可移植性強(qiáng),Window、Linux、Mac、Android等系統(tǒng)均可開(kāi)發(fā)
面向?qū)ο?,完整意義上的高級(jí)語(yǔ)言特性
解釋性語(yǔ)言,不用擔(dān)心“內(nèi)存泄漏”
膠水語(yǔ)言,可作為其它語(yǔ)言的粘合劑
開(kāi)源,這也是其發(fā)展迅速的主要原因
第三方模塊多,不用重復(fù)制造“輪子”
基于上述特點(diǎn),Python逐漸成為很多領(lǐng)域首選編程語(yǔ)言。當(dāng)前,隨著AI技術(shù)和5G的普遍應(yīng)用,幾乎各行各業(yè)都在使用Python開(kāi)發(fā)應(yīng)用,使得Python應(yīng)用領(lǐng)域更加廣泛。
Web應(yīng)用開(kāi)發(fā)
如果你對(duì)網(wǎng)站前端設(shè)計(jì)比較在行,你可以在極短的時(shí)間內(nèi)搭建一個(gè)自己喜歡的網(wǎng)站。當(dāng)然,前提是要熟練掌握一種Web應(yīng)用框架。典型的Web應(yīng)用開(kāi)發(fā)框架有Django、Flask、Pyramid,可以選擇自己感興趣的學(xué)習(xí),這里首推Django,隨著這些框架的不斷更新,使得Python開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用程序變得簡(jiǎn)單、高效。