问题描述

        今天在环境迁移的过程中遇到多个问题,包括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包为例:



    #tar -xzvf Flask-1.1.1.tar.gz

    #cd Flask-1.1.1/

    #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,添加如下行解决

vim /etc/hosts    (添加如下行解决)

127.0.0.1       localhost.localdomain localhost

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

vim /etc/resolv.conf

'添加了两行(DNS地址是咨询了服务器运营商得知的)'
nameserver   127.0.0.53
(添加下面这两行)
nameserver   61.129.88.123
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 *** 的,也就是说如果我一开始就把权重导过去可能就解决了,这是一个非常扯蛋的事情,抱歉,各位,到这才跟你们说,因为我也是写到上一段的时候我才发现这个问题的,所以看在我辛苦敲字的面儿上放我一马吧。因为直到现在我也不知道是不是一开始就传权重就能把问题解决,但可以保证的是按照上面说的,肯定是可以解决的额。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐