windows上使用visdom遇到的问题

使用pip install visdom之后
使用visdom 或者python -m visdom.server之后开始出现问题
第一个 卡在
Downloading scripts, this may take a little while

研究了一下,在visdom安装目录下的server.py文件中,在大概1768行:

data = opener.open(req).read()

卡在这一句上了

我在前后加上print大法便于监测:

print('open request...')
data = opener.open(req).read()
print('open finished.')

查看opener的定义,发现这么几行

handler = request.ProxyHandler(proxies) if proxies is not None \
        else request.BaseHandler()
opener = request.build_opener(handler)

发现其实是可以设置代理的。

找到download_scripts函数定义:

def download_scripts(proxies=None, install_dir=None):

发现可以在调用该函数时传入代理地址。

于是开启本地代理,传入代理地址参数形如 proxies={127.0.0.1:端口号}
发现很快就下载好了,如果不用代理会一直卡住。。

另外发现,如果填入无法响应的代理服务器可以显示下载文件的网址。。。

如果你也有代理工具的话可以查看你自己的代理地址,也可以直接在这下载我下载好的,但是不一定能用:(当初花了5积分下载的那个就不能用)
https://pan.baidu.com/s/1Gz4JBTT-l_iZrZxtcBDChg
放到visdom文件夹里,visdom文件夹大概在Anaconda3\envs\你的环境名\Lib\site-packages\visdom中

之后如果正常的话,使用visdom命令应该会显示:
征程的显示
之后我又出了问题,说是没有pwd模块
找了一下问题出在\Lib\getpass.py中
大概在160多行getuser()函数中

for name in ('LOGNAME', 'USER', 'LNAME', 'USERNAME'):
    user = os.environ.get(name)
    if user:
        return user

# If this fails, the exception will "explain" why
import pwd
return pwd.getpwuid(os.getuid())[0]

发现pwd其实是为linux写的,windows中没有这个库。
就先把它注释掉。
之后还是会出错
TypeError: expected string or bytes-like object
估计大概是user出问题,因为运行

import os
for name in ('LOGNAME', 'USER', 'LNAME', 'USERNAME'):
    user = os.environ.get(name)
    print(user)

发现返回的全是None
干脆直接指定一个user名吧

for name in ('LOGNAME', 'USER', 'LNAME', 'USERNAME'):
    # user = os.environ.get(name)
    user = 'Administrator'
    if user:
        return user

然后就发现http://localhost:8097/可以使用了
结果
奥利给!

你可能感兴趣的:(windows上使用visdom遇到的问题)