因为服务器只能在内网环境下运行,所以不能连外网,
最基本的“pip install”是不能用的
pip install timm
然后离线安装的timm的安装包很少
在Python timm项目安装包(第三方库)下载资源&安装指南页面 - PyPI - Python中文网 (cnpython.com)找到了timm 0.3.1版本的whl文件,拷贝到服务器后离线安装:
pip install timm-0.3.1-py3-none-any.whl
仍然报错:ImportError: cannot import name 'container_abcs' from 'torch._six'
网上搜集了一下资料主要有以下两点解决方法:
1.修改error报错指定文件(……/site-packages/torch/_six.py)代码:
修改为如下:
if TORCH_MAJOR == 1 and TORCH_MINOR < 8:
from torch._six import container_abcs
else:
import collections.abc as container_abcs
但是我并没有找到错误位置,所以此方法放弃;
2.升级timm版本,大部分的解决方法是升级到timm 0.4.12后问题解决:
在网上搜罗了一大圈也没有找到timm 0.4.12的whl的安装包,无奈只能放弃;
因为linux服务器不能联网,所以我想到能不能在服务器上正确安装的可以联网的linux服务器上将可用的timm的whl安装文件打包,在通过离线的方式在服务器上进行安装:
操作方法如下:
1.在可联网的服务器端打包timm库
pip freeze > ./apk/timm.txt
ps:注意在这一步要把其他除timm的其他全部删除,不然会全部打包;
然后通过这台可联网的服务器下载相应的文件:
pip download -r ./apk/timm.txt -d ./pip_packages
数据还稍稍有点多,如果找不到的话可以找我分享给你;
2.将上面得到的./pip_packages 和./apk/timm.txt 拷贝到离线主机下;
3.离线安装
pip install --no-index --find-links=./site-packages -r ./apk/timm.txt
最后安装成功:
背后的原因可能是timm的依赖库比较多,需要安装的库比较多,我拷贝出来的文件有1.7G
成功安装timm-0.6.12,成功debug