2022年 11月 9日

使用conda将python环境打包pack,移植到另一个linux服务器项目中

一:conda-pcak在什么情况下使用:

二:conda常见的使用指令:

1:查看自己conda管理有几种python环境:

2:创建一个新的python环境:

3:对已经存在的python环境进行复制:

4:切换到对应的python环境:

三:打包某个python环境

1:进行python环境打包:

2:传输这个压缩文件py3666.tar.gz到你所需要的服务器上:

3:解压缩py366.tar.gz:

4:激活环境:

特别强调的问题:


一:conda-pcak在什么情况下使用:

移植python环境一般用于一下几种情况:

        1:别人要运行你的代码,但是没有你的python环境,如果要一个一个python包进行安装,则非常麻烦,并且有时候还安装出现问题。

        2:有一个包始终安装不上,但是在你的另一个python环境下有,或者在别人的环境中存在,这个时候就可以将python环境打包,移植到你的电脑上,然后激活该环境,运行对应的项目。

        在我初期学习时,总是有包安装不上,或者就是不通的项目需要不通的环境,但是也总不能在一个环境下运行所有项目,这里面牵扯到python版本和各种包的版本的问题,是在令人头疼,耐心看完这篇文章,你会对python环境的管理有一个熟练且清楚的掌握。

二:conda常见的使用指令:

1:查看自己conda管理有几种python环境:

conda info –envs

可以看到,我的服务器下conda管理了3个环境(base, py3.8, py36)

2:创建一个新的python环境:

conda create -n py3.8 python=3.8

Py3.8是新创建的python环境的名字,python=3.8是环境的版本

3:对已经存在的python环境进行复制:

conda create -n py3.8_0 –clone py3.8

Py3.8_0是复制后的python环境的名字,py3.8是需要复制的python环境的名字

4:切换到对应的python环境:

conda activate base

可以看到, 我之前是在py3.8python环境中,现在切换到了base环境中。

三:打包某个python环境

在打包之前如果没有conda-pack包的话,需要安装pip install conda-pack

1:进行python环境打包:

conda pack -n py36 -o py366.tar.gz

Py36是需要打包的已存在的python环境,py366.tar.gz是我们打包后压缩包的名称

可以看到我们将py36打包,然后当前目录下出现了一个py366.tar.gz的压缩包

2:传输这个压缩文件py3666.tar.gz到你所需要的服务器上:

        这里我是有两台linux服务器,我自己使用的是windows平台,使用xftp先从第一个服务器上把压缩包传输到windows上,然后再传输到另一个服务器的anaconda下的envs目录下,也就是/root/software/anaconda3/envs。

3:解压缩py366.tar.gz:

        创建文件:py366,因为我们是要将压缩文件解压到py3666中,这个创建的名字到时候就是你的虚拟python环境的名字。

mkdir py366

解压缩:

tar -zxvf py366.tar.gz -C py366

4:激活环境:

conda activate py366

可以看到此时我们anaconda3/envs目录下的文件。

特别强调的问题:

        这种python环境打包,只能在通一种操作系统中进行,比如你在windows平台上安装的anaconoda,打包anaconda中的python环境到linux服务器中,这样的是用不了的,我之前不知道,进行了这样的尝试,还以为出现了错误,我们可以看下面图片就明白了。

        左边的是windows下的anaconda/envs下的py36环境下的文件,而右边是linux下的anaconda3/envs下的py37环境下的文件,可以看到两个是不一样的,这也就说明了两种系统的python环境是不能这样操作的。