如何将 virtualenv 复制到另一台没有相同解释器的机器?

How to copy virtualenv to another machine which doesn't have the same interpreter?

我的本地机器上有一个 virtualenv,我想将这个 virtualenv 复制到同一平台的生产机器上,但它没有 python3,我无法安装它。

是否可以将 virtualenv 和 python3 解释器复制到没有相同 python 版本的生产机器上?

我已经尝试过 virtualenv 的可重定位和 pip 冻结。我复制了 venv 并更改了活动路径但它没有帮助,它不能 运行 pip 或 python 命令,因为它找不到解释器。

理想情况下,您不要将 virtualenv 复制到生产机器上。相反,创建一个 PEX 文件并要求管理员在生产主机上安装 python3。

Virtualenv 是开发人员的概念。由于开发人员正在处理不同的项目,并且不同的项目使用不同版本的库。 Virtualenv 为此类问题提供了解决方案。

PEX(Python可执行文件)相当于.exe文件。

Anaconda 通过以下步骤解决了我的问题:

副本服务器(可以是本地或VM):

  1. 创建下载目录并下载安装 Anaconda。将用户名更改为您的。用户名必须与真实服务器或产品服务器相同!

    mkdir /home/username/download cd /home/username/download wget https://repo.continuum.io/archive/Anaconda3-4.3.0-Linux-x86_64.sh bash /home/umut.ataman/Anaconda3-4.3.0-Linux-x86_64.sh

  2. 导出您希望 anaconda-python 成为的路径并创建虚拟环境。

    mkdir /data/anaconda/bin export PATH=/data/anaconda/bin:$PATH conda create -n anenv python=3.7.0 anaconda

  3. [可选]激活venv并安装项目要求(如果您需要在复制前进行基本安装)。

    source /data/mavenrepo/anaconda/bin/activate anenv pip install --upgrade pip pip install -r requirements.txt --ignore-installed six

要复制的服务器。 - SHH 将 anaconda 目录复制到 real-prod 服务器并激活你的 venv。不要忘记检查 python.

的版本
`scp -r root@10.1.1.1:/data/anaconda/* /data/anaconda/
 source /data/mavenrepo/anaconda/bin/activate anenv
 python -V`