我在本地计算机上有一个virtualenv,我想将此virtualenv复制到同一平台但没有python3且无法安装的生产计算机上。
是否可以将virtualenv和python3解释器复制到没有相同python版本的生产机器上?
我已经尝试过为virtualenv和pip冻结重新定位。我复制了venv并更改了活动路径,但无济于事,因为它找不到解释器,所以无法运行pip或python命令。
答案 0 :(得分:1)
理想情况下,您不会将virtualenv复制到生产计算机。相反,请创建一个PEX文件并要求管理员在生产主机上安装python3。
Virtualenv是面向开发人员的概念。当开发人员从事不同的项目时,不同的项目使用不同版本的库。 Virtualenv提供了解决此类问题的方法。
PEX(Python可执行文件)等效于.exe文件。
答案 1 :(得分:0)
Anaconda通过以下步骤解决了我的问题:
副本服务器(可以是本地服务器或VM):
创建一个下载目录并下载并安装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
导出您希望anaconda-python成为的路径并创建虚拟环境。
mkdir /data/anaconda/bin
export PATH=/data/anaconda/bin:$PATH
conda create -n anenv python=3.7.0 anaconda
[可选]激活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`