虛擬環境放在哪裡?

虛擬環境放在哪裡?

我的電腦上會有很多虛擬環境,我希望有一個地方可以儲存它們。不知何故,$HOME和 子目錄似乎不太好;太暴露了。有什麼建議或理由說明我的想法是錯的嗎?

我正在考慮/var/venv/。有什麼想法嗎?

答案1

對於 venv,您可能希望它們位於 $HOME 的子目錄中,以避免 apparmor 或 docker 等容器中的安全限制問題。

請注意此文件中的限制:

/etc/apparmor.d/abstractions/python

理論上,您可以將它們放在 /opt 中,但 venvs 實際上是特定於使用者的,並且應該位於使用者主目錄中。由於其他發行版限制以及 /usr 被官方假定由 LSB 在網路上共享的事實,本地不是一個選項。

我個人遵循 golang 結構的修改版本。

~build/
       +$language/
                +bin/
                |    venv/
                |      |---Python2.7
                |      +---Python3.6
                +pkg
                +src/
                    |
                    +--- my_work/..
                    |          |---repo1
                    |          +---other_project
                    |
                    +-- external-repo.com/..

這使得尋找和移動內容變得很容易,而且它與安全模型、cgroups等限制所施加的限制相容,隨著容器的普及,這些限制將變得更加重要。

請記住,venvs 最初旨在包含在專案目錄中。雖然核心作業系統依賴項和主要版本變更的現實增加了它們的使用,但最好還是讓它們盡可能接近單一套件、進程或使用者。

相關內容