将virtualenvwrapper环境从ubuntu转移到windows

时间:2018-03-25 01:52:26

标签: windows ubuntu virtualenvwrapper

我在ubuntu中使用多个虚拟环境开展了不同的项目。 我有virtualenvwrapper,并使用经典的mkvirtualenv <envname>命令。

在我的系统上我也有Windows,我想在这个操作系统上检索我的环境。 我通过pip安装了virtualenvwrapper-win软件包并将我的WORKON_HOME环境变量设置为与我的ubuntu系统上的相同位置。

现在在Windows上,workon命令的输出如下:

(base) C:\Users\mathi>workon

Pass a name to activate one of the following virtualenvs:
==============================================================================
caps_env
dashex
media
PMALL36

但是当我尝试激活其中一个环境时,我得到了:

(base) C:\Users\mathi>workon PMALL36

    D:\Informatique\virtual_environments\PMALL36
    doesn't contain a virtualenv (yet).
    Create it with "mkvirtualenv PMALL36"

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

virtualenvs的布局在linux和windows之间是不同的,python可执行文件和用C编写并作为共享库加载的所有模块也是如此。如果它们不是纯Python模块,任何第三方软件包都会出现问题,即便如此,它们也会安装在不同的位置,例如:在Windows上:

F:\> workon test1
(test1) F:\> cdvirtualenv
(test1) c:\srv\venv\test1> cdsitepackages
(test1) c:\srv\venv\test1\Lib\site-packages>

和Ubuntu:

deployer@linoidbc:~$ workon test1
(test1) deployer@linoidbc:~$ cdvirtualenv
(test1) deployer@linoidbc:/srv/venv/test1$ cdsitepackages
(test1) deployer@linoidbc:/srv/venv/test1/lib/python2.7/site-packages$

我猜你已经从linux创建了virtualenv,它将激活放在$VIRTUAL_ENV/bin/activate中,并且当virtualenvwrapper-win在%VIRTUAL_ENV%\Scripts\activate.bat中检查它时你收到了该错误消息:

if not exist "%WORKON_HOME%\%VENV%\Scripts\activate.bat" (
    echo.
    echo.    %WORKON_HOME%\%VENV%
    echo.    doesn't contain a virtualenv ^(yet^).
    echo.    Create it with "mkvirtualenv %VENV%"
    goto END
)

您应该创建一个与您的virtualenvs分开的共享(项目)目录。你需要创建两个virtualenvs,一个用于linux,一个用于windows,并将它们连接到项目目录。我相信你应该能够做到:

mkvirtualenv -a /path/to/project/dir mylinux_venv

mkvirtualenv -a \path\to\project\dir mywin_venv

将您的requirements.txt文件放在项目目录中,并在更改要求时使用两个virtualenv中的pip install -U -r requirements.txt

项目目录会自动添加到相应virtualenv的路径中,cdproject命令会将目录更改为该目录。