说明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 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
把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文件夹复制到离线服务器的/anaconda3/envs路径下.
pip install --no-index --find-links=/your_offline_packages/ -r requirements.txt