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