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