说明1:联网笔记本和离线服务器最好安装同一版本的anaconda。
说明2:本文以离线安装包的形式重建虚拟环境,而不是直接把虚拟环境拷贝过去使用,是因为有的安装包直接拷贝过去无法正确使用。
说明3:先配置好环境再下载离线安装包的原因是,许多安装包有依赖包,逐个下载需要的离线安装包无法确保这个离线安装包的正常安装与使用。
说明4:可能还有其他更方便的虚拟环境迁移方式,有待学习,希望大家指教。
说明5:本文将联网笔记本上创建的虚拟环境复制到离线服务器上,而不是在离线服务器上重新创建环境,是因为,anaconda缺乏一些必要的python版本或相关的依赖包。
第一步,创建虚拟环境
在联网笔记本上用anaconda创建虚拟环境env-py37.
conda create -n env-py37 python=3.7
第二步:配置虚拟环境
在联网笔记本上配置虚拟环境env-py37,安装相应的python包,如numpy,pandas,matplotlib等。
pip install matplotlib
pip install sklearn
pip install pandas
pip install opencv-python
pip install numpy
%% 等等
第三步:获取pip配置列表
pip freeze > ./requirements.txt
得到pip安装列表如下:
certifi==2022.9.14
cycler==0.11.0
fonttools==4.37.3
joblib==1.2.0
kiwisolver==1.4.4
matplotlib==3.5.3
numpy==1.21.6
opencv-python==4.6.0.66
packaging==21.3
pandas==1.3.5
Pillow==9.2.0
pyparsing==3.0.9
python-dateutil==2.8.2
pytz==2022.2.1
scikit-learn==1.0.2
scipy==1.7.3
six==1.16.0
sklearn==0.0
threadpoolctl==3.1.0
typing_extensions==4.3.0
wincertstore==0.2
如果得到的 requirements.txt 中,包后面有“@...”(如下所示),则把所有“@...”内容删掉。
altgraph @ file:///home/linux1/recipes/ci/altgraph_1611055153312/work
Bottleneck @ file:///C:/Windows/Temp/abs_3198ca53-903d-42fd-87b4-03e6d03a8381yfwsuve8/croots/recipe/bottleneck_1657175565403/work
certifi @ file:///C:/b/abs_4f5wo627a3/croots/recipe/certifi_1663615677642/work/certifi
cycler @ file:///tmp/build/80754af9/cycler_1637851556182/work
et-xmlfile==1.1.0
fonttools==4.25.0
future==0.18.2
importlib-metadata @ file:///C:/ci/importlib-metadata_1648562631189/work
joblib==1.2.0
kiwisolver @ file:///C:/ci/kiwisolver_1653274189334/work
macholib @ file:///home/linux1/recipes/ci/macholib_1611055836792/work
matplotlib @ file:///C:/ci/matplotlib-suite_1660169687702/work
第四步:批量下载package
把requirements.txt中所有的package下载到“your_offline_packages”文件夹中。当所有的package都下载成功后,所有的package一起出现,而不是逐个下载逐个出现。
pip download -d your_offline_packages -r requirements.txt
第五步:清空虚拟环境
把在联网笔记本上配置的虚拟环境env-py37中,卸载已经安装的package,如numpy,pandas,matplotlib等。目的是减小虚拟环境的大小。
pip uninstall -r requirements.txt
第六步:收集虚拟环境的安装文件。
包含以下三个文件:
1)在anaconda安装目录下的env-py37环境文件夹。路径为:E:\software-setups\Anaconda3\envs\env-py37。将整个文件夹压缩。
2)上面第四步中得到的your_offline_packages文件夹。
3)上面第三步得到的requirements.txt文件。
第七步:在离线服务器上重建虚拟环境env-py37。
step1:复制基础环境env-py37
把env-py37文件夹复制到离线服务器的/anaconda3/envs路径下.
step2:批量安装离线包
pip install --no-index --find-links=/your_offline_packages/ -r requirements.txt