問題:有些使用體驗太過復(fù)雜——對,說的就是為專業(yè)級Python項目設(shè)置工作區(qū)、目錄結(jié)構(gòu)與基本架構(gòu);管理與項目相關(guān)的環(huán)境、軟件包及依賴項;以可重復(fù)方式重新分配項目來源;并一次又一次不斷進(jìn)行這個過程。
Rust與Go這兩種語言,在初始設(shè)計階段就強調(diào)提供一種單一且規(guī)范的項目設(shè)置方式,并允許開發(fā)者在整個生命周期之內(nèi)對其進(jìn)行輕松管理。Rust與Go開發(fā)人員雖然因此犧牲掉了一定程度的靈活性,但卻換來了良好的一致性、可預(yù)測性以及可管理性。
Python提供的安裝、軟件包以及項目管理工具與方法,隨著時間推移而不斷積壓,并成為30年發(fā)展周期中的一筆重大負(fù)擔(dān)。其中有用于軟件包管理的pip、用于創(chuàng)建虛擬環(huán)境的venv/virtualenv、用于元管理的virtualenvwrapper與Pipenv、用于生成項目依賴性的pip-tools、以及用于創(chuàng)建Python代碼發(fā)行版的distutils與setuptools等。此外,還有負(fù)責(zé)定義項目其它部分的setup.py、requirements.txt、setup.cfg、MANIFEST.in以及Pipfile等等。
解決方案:同樣的,我們需要取代這如同一團(tuán)亂麻的工具與流程大雜燴,由Python核心開發(fā)團(tuán)隊拿出一套規(guī)范性的解決方案,同時確保其能夠優(yōu)雅地遷移一切利用現(xiàn)有方法開發(fā)出的項目。當(dāng)然,這是個很難解決的挑戰(zhàn),但隨著Python語言變得越來越重要,我們必須努力讓它成為一款易于上手、維護(hù)簡單、一致性強且友好舒適的編程工具。
目前這方面工作已經(jīng)有所進(jìn)展。根據(jù)PEP518提案,Python的build依賴項被合并為pyproject.toml文件格式。而像poetry這樣的第三方工具雖然只能打包現(xiàn)有工具,但已經(jīng)體現(xiàn)出一體化管理產(chǎn)品的樣貌。隨著時間的推移,其中一種解決方案也許會脫穎而出、受到整個社區(qū)的關(guān)注,并成為客觀層面甚至是范式性的處理標(biāo)準(zhǔn)。
以上內(nèi)容為大家介紹了python安裝、軟件包與項目管理,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.jsszjs.cn/