如何在Windows和Linux上使用相同的Python virtualenv

Cri*_*s19 5 python linux windows virtualenv

我最近在同一台PC上开始使用Windows和Linux - 它们安装在两个不同的分区上,第三个分区包含公共数据和归档.从Windows创建的virtualenvs是使用文件夹"Scripts"创建的,而Linux中的对应文件是"bin"文件夹.

这里的问题是这些文件夹中的文件与两个操作系统不兼容.例如,bin(在Linux中创建)中包含的"activate"不在Windows中运行,另一方面,在Windows中无法在Linux上执行脚本中的"激活"(在Windows中创建).

有没有办法在两个操作系统上使用相同的virtualenv?

Shu*_*huo 18

简短的回答,没有.但是你可以分享venv构建脚本.

  1. pip freeze所有库到requirements.txt文件.

    pip freeze > requirements.txt
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在每个操作系统上创建venv:

    python -m venv env
    source env/bin/activate
    pip install -r requirements.txt  # Install all the libs.
    
    Run Code Online (Sandbox Code Playgroud)

有几个原因导致无法在操作系统之间共享venv:

  1. 有些软件包包含C扩展,操作系统的.dll彼此不兼容.
  2. venvs包含带有硬编码路径的脚本.Windows和Linux路径不同.