簡體   English   中英

將 virtualenvs 移動到另一個主機文件夾

[英]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.

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