18人参与 • 2025-10-13 • 其他编程
笔者所在公司最近要在局域网内部署nlp算法模型,由于需求方对数据安全有严格要求,新服务器所在局域网不能直接访问internet,因此需要将模型所需的运行环境离线迁移到新服务器中。
conda-pack是一个命令行工具,用于打包conda环境。
该命令会将坏境中安装的软件包的二进制文件进行打包。
注:本方法不需要下载安装包,因此,conda-pack需要指定平台和操作系统,目标计算机必须于源计算机有相同的平台和操作系统。
conda的base环境中安装conda-pack;pip install conda-pack
# pack environment my_env into my_env.tar.gz conda pack -n my_env # pack environment my_env into out_name.tar.gz conda pack -n my_env -o out_name.tar.gz # pack environment located at an explicit path into my_env.tar.gz conda pack -p /explicit/path/to/my_env
# unpack environment into directory `my_env` mkdir -p my_env tar -xzf my_env.tar.gz -c my_env # use python without activating or fixing the prefixes. most python # libraries will work fine, but things that require prefix cleanups # will fail. ./my_env/bin/python # activate the environment. this adds `my_env/bin` to your path source my_env/bin/activate # run python from in the environment (my_env) $ python # cleanup prefixes from in the active environment. # note that this command can also be run without activating the environment # as long as some version of python is already installed on the machine. (my_env) $ conda-unpack
利用pip将服务运行所依赖的包下载到本地,拷贝到目标服务器进行离线安装。
requirements.txtpip list --format=freeze > requirements.txt
备注: 此处不使用pip freeze命令是因为pip freeze导出的文件会出现@ file://的问题,导致后续下载依赖包的时候出现问题。
pip download -r requirements.txt -d "/home/admin/packs" -i https://pypi.tuna.tsinghua.edu.cn/simple
requirements.txt和依赖包拷贝到目标服务器conda虚拟环境conda create -n my_env python=3.6.5 pip=10.0.1 --offline
备注:
--offline:指定离线创建虚拟环境;python=3.6.5 & pip=10.0.1:指定默认的python版本号、并安装pip工具,如果不安装pip,则改虚拟环境使用默认的pip工具,就无法将依赖包安装到新虚拟环境。anaconda自带的package在anaconda3/pkgs目录下,可自行查看;pip install -u --no-index --find-links=./packs -r requirements.txt
备注: 若出现
cannot uninstall 'xxxx'. it is a distutils installed project and thus we cannot accurately det...
(xxx是某package的名称),使用如下命令进行解决:
pip install -u --ignore-installed --no-index --find-links=./packs xxx
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论