[英]Move the virtualenvs to another host folder
由於錯誤,我在創建虛擬環境之前忘記指定WORKON_HOME
變量,它們是在/root/.virtualenvs
目錄中創建的。 他們工作得很好,我通過激活某些環境然后執行(env)$ pip freeze
來查看那里安裝了哪些特定模塊,從而進行了一些測試。
因此,當我發現 workon 主路徑錯誤時,我需要將主機目錄更改為/usr/local/pythonenv
。 我創建了它並將/root/.virtualenvs
目錄的所有內容移動到/usr/local/pythonenv
,並更改了WORKON_HOME
變量的值。 現在,使用 workon 命令激活環境似乎工作正常(即,promt 更改為(env)$
),但是如果我執行(env)$ pip freeze
,我會得到比以前更長的模塊列表,而那些不包括在移動之前安裝在該特定環境中的那些。
我想僅僅移動文件並為WORKON_HOME
變量指定另一個目錄是不夠的。 是否有一些配置我應該指定主機目錄的新位置,或者特定環境的一些配置文件?
默認情況下,Virtualenvs 不可重定位。 您可以使用virtualenv --relocatable <virtualenv>
將現有的 virtualenv 轉換為可重定位的,看看是否有效。 但該選項是實驗性的,並不真正推薦使用。
最可靠的方法是創建新的虛擬環境。 在舊的使用pip freeze -l > requirements.txt
獲取已安裝包的列表,創建新的 virtualenv,並使用pip install -r requirements.txt
在新的包中安裝包。
我使用了virtualenv --relocatable
功能。 它似乎有效,但后來我發現安裝了不同的 python 版本:
$ . VirtualEnvs/moslog/bin/activate
(moslog)$ ~/VirtualEnvs/moslog/bin/mosloganalisys.py
python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
請記住在目標主機上重新創建相同的 virtualenv 樹。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.