簡體   English   中英

pip install 之間的區別。 和 pip install -e

[英]Difference between pip install . and pip install -e

我在 python 中創建了一個包,現在我想將它安裝為常規包。 僅使用pip3 install .什么區別pip3 install . pip3 install -e . ?

我問的原因是因為使用 pip3 install 。 該軟件包雖然已安裝,但系統未看到。 雖然在第二種方式中它工作正常

-e標志告訴 pip 以可編輯模式安裝:

-e,--editable <path/url>
    Install a project in editable mode (i.e. setuptools "develop mode") from a local project path or a VCS url.

https://manpages.debian.org/stretch/python-pip/pip.1

那么什么是可編輯模式或 setuptools“開發模式”?

此命令允許您將項目源部署到一個或多個可用於導入的“暫存區域”中。 此部署以這樣一種方式完成,即對項目源的更改在暫存區域中立即可用,而無需在每次更改后運行構建或安裝步驟。

develop 命令的工作原理是在給定的暫存區中創建一個 .egg-link 文件(以項目命名)。 如果暫存區是 Python 的 site-packages 目錄,它還會更新 easy-install.pth 文件,以便項目默認位於 sys.path 上,用於使用該 Python 安裝運行的所有程序。

開發命令還會在暫存區(或指定的單獨目錄)中安裝包裝器腳本,以確保在運行項目的源腳本之前,項目的依賴項在 sys.path 上可用。 並且,它通過在必要時下載和安裝它們來確保任何缺少的項目依賴項在暫存區可用。

最后但並非最不重要的是, develop 命令調用 build_ext -i 命令來確保項目中的任何 C 擴展都已經構建並且是最新的,以及 egg_info 命令來確保項目的元數據得到更新(以便運行時並且包裝器知道項目的依賴項是什么)。 如果您對項目的安裝腳本或 C 擴展進行任何更改,您應該針對所有相關的暫存區域重新運行開發命令,以保持項目的腳本、元數據和擴展是最新的。

或者,tldr;

以“開發模式”部署您的項目,使其在 sys.path 上可用,但仍然可以直接從其源代碼檢出進行編輯。

https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM