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

时间:2018-10-05 12:45:01

标签: python virtualenv

我在本地计算机上有一个virtualenv,我想将此virtualenv复制到同一平台但没有python3且无法安装的生产计算机上。

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

我已经尝试过为virtualenv和pip冻结重新定位。我复制了venv并更改了活动路径,但无济于事,因为它找不到解释器,所以无法运行pip或python命令。

2 个答案:

答案 0 :(得分:1)

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

Virtualenv是面向开发人员的概念。当开发人员从事不同的项目时,不同的项目使用不同版本的库。 Virtualenv提供了解决此类问题的方法。

PEX(Python可执行文件)等效于.exe文件。

答案 1 :(得分:0)

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目录复制到真实产品服务器并激活您的venv。不要忘记检查python版本。

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