簡體   English   中英

virtualenv可以繼承另一個嗎?

[英]Can a virtualenv inherit from another?

我想創建一個virtualenv使用另一個作為起點,這可能嗎?

我必須記住案例:

  1. 假設我有兩個virtualenv用於生產,一個用於開發。 開發環境需要與生產環境相同的包,但它需要在生產環境中不需要的其他包。 我不想兩次安裝普通包。

  2. 我想嘗試一個軟件包的開發版本,例如matplotlib 該軟件包的開發版本與穩定版本具有相同的要求。 所以我創建了一個名為matplotib_stablevirtualenv並安裝了需求和穩定版本。 然后我創建了第二個名為matplotlib_dev virtualenv並使用matplotlib_stable作為起點(對於matplotlib要求),然后我安裝了開發版本。

如何使用pip從本地緩存安裝? 似乎解決了下載軟件包的問題,​​但我認為它不涉及修改sys.path

一種解決方案是使用virtualenvwrapperadd2virtualenv命令。 這個

將指定的目錄添加到當前活動的virtualenv的Python路徑中。

所以如果我有兩個virtualenvENV1ENV2 ,我想讓ENV2訪問ENV1的包,那么我需要:

  1. 激活ENV2

    workon ENV2

  2. 使用add2virtualenv添加ENV1的site-packages目錄:

    add2virtualenv $WORKON_HOME/ENV1/lib/python2.6/site-packages

上面假設$WORKON_HOME是你的virtualenv目錄的位置,並且你正在使用python2.6,所以顯然相應地調整它們。

雖然這提供了對包的訪問,但它不會調整shell路徑。 換句話說,使用此方法無法訪問安裝到bin目錄的腳本。

以下似乎對我有用。 假設你要繼承所謂的老虛擬環境中old 由於您可以指定在創建新環境時使用哪個python版本,只需執行以下操作:

virtualenv -p path_to_venvs/old/bin/python --system-site-packages new_env

暫無
暫無

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

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