• 【已解决】socket.gaierror: [Errno -3] Temporary failure in name resolution


    问题描述

            今天在环境迁移的过程中遇到多个问题,包括ModuleNotFoundError: No module named 'flask',socket.gaierror: [Errno -3] Temporary failure in name resolution以及Downloading: "https://huggingface.co/gyrojeff/YuzuMarker.FontDetection/resolve/main/commit%3Dbc0f7fc-epoch%3D26-step%3D261954.ckpt" to /home/visionx/.cache/torch/hub/checkpoints/commit%3Dbc0f7fc-epoch%3D26-step%3D261954.ckpt
    Traceback (most recent call last):
      File "/home/visionx/EXT-3/qfy/anaconda3/envs/fontdetect/lib/python3.8/urllib/request.py", line 1317, in do_open,正好在这里详细分析并记录一下。

    原因分析及解决办法

            先说第一个问题,缺少flask模块对吧,所以直接安装就可以了

    pip install flask
    

             但由于我的属于离线环境,所以报错了

            那就需要离线安装。

            离线安装需要把flask依赖的库全安上最后才能安装flask,顺序为Werkzeug、MarkupSafe、pytz、Babel、Jinja2、itsdangerous、Click、Flask。也可以随便装,反正装不下去了也会提示先装哪个。把上面的包从PyPI · The Python Package Index官网下载好之后,然后执行解压安装操作即可,注意最好不要下载最新版本的,以免有坑。以flask包为例:

    1. #tar -xzvf Flask-1.1.1.tar.gz
    2. #cd Flask-1.1.1/
    3. #sudo python3.6 setup.py install

            其他几个包都是一样的操作。

            当然这里也有另外一个办法,就是在主机上把环境在conda pack一遍,然后再传给服务器,这个方法是更省事的,推荐!

    conda pack -n fontdetect -o fontdetect.tar.gz

            第二个问题socket.gaierror: [Errno -3] Temporary failure in name resolution,这个是因为localhost.localdomain无法解析造成的,所以处理这个问题不仅要修改host文件还要修改DNS的配置文件。

            首先是修改/etc/hosts,添加如下行解决

    1. vim /etc/hosts (添加如下行解决)
    2. 127.0.0.1 localhost.localdomain localhost

             然后修改DNS的配置文件,这个时候只需要添加以下两行即可,因为第一行的nameserver是服务器自带的

    1. vim /etc/resolv.conf
    2. '添加了两行(DNS地址是咨询了服务器运营商得知的)'
    3. nameserver 127.0.0.53
    4. (添加下面这两行)
    5. nameserver 61.129.88.123
    6. nameserver 114.114.114.114

             添加完这些之后,问题也就解决了。

            但是新的问题又出现了,也就是第三个问题。

            乍一看好像还是那个问题,但会发现上面已经开始Downloading了,这就有意思了对吧,那这个明显是权重因为不联网的原因没有下载成功啊,那只需要把权重考过去就行了

    scp -r /home/visionx/.cache/torch/hub/checkpoints/* 用户名@ip:/home/visionx/.cache/torch/hub/checkpoints

             原谅我比较懒,担心后续会出现其他问题,所以就全部考过来了,当然这是一个非常懒省事但是不合格的工程思想,希望大家不要像我学习。

    完结撒花

            其实写到这,我好像恍然大悟一个事情,就是我第一次出现socket.gaierror: [Errno -3] Temporary failure in name resolution的时候也是有Downloading *** 的,也就是说如果我一开始就把权重导过去可能就解决了,这是一个非常扯蛋的事情,抱歉,各位,到这才跟你们说,因为我也是写到上一段的时候我才发现这个问题的,所以看在我辛苦敲字的面儿上放我一马吧。因为直到现在我也不知道是不是一开始就传权重就能把问题解决,但可以保证的是按照上面说的,肯定是可以解决的额。

  • 相关阅读:
    java计算机毕业设计web二手交易平台源码+mysql数据库+系统+lw文档+部署
    Dart(14)-List集合
    ABAP技术总结2022.8.30(ALV和smart forms)
    Java有根儿:Class文件以及类加载器
    git -1
    【推导】线性变换的矩阵表达式
    CYarp:力压frp的C#高性能http内网反代中间件
    13.LoadRunner内置参数和事务定义
    在VScode中使用Jupyter Notebook的一些技巧
    CSS首字母下沉怎么设置?
  • 原文地址:https://blog.csdn.net/BetrayFree/article/details/133757894