我以为成功安装python-steem库就可以愉快地玩耍了,这个想法还是太单纯,谁知道在导入steem模块的时候又出现问题了:无法导入winrandom模块。
很自然地想到winrandom这个模块是不是没安装啊?拿出pip安装winrandom试试。
python -m pip install winrandom
在编译winrandom时又有新问题:ValueError: Unknown MS Compiler version 1900
网上查到解决办法,修改I:\PYTHON~1\lib\distutils\cygwinccompiler.py文件,打补丁。
再次尝试安装编译winrandom,还是失败:No such file or directory
这是找不到src/winrandom.c源文件吗?继续鼓捣鼓捣,感觉自己瞎折腾了一番,没解决问题,玩累了,再次到网上求助。
网上别人给的解决办法:修改i:\python364\lib\site-packages\Crypto\Random\OSRNG\nt.py文件,将import winrandom 改成 from . import winrandom
方法有效。原来不是winrandom模块没有安装,而是Python的导入机制找不到模块的路径。先入为主地把思考问题的方向弄错了,花多少时间都是白费。Python的模块导入机制是如何搜索模块路径的?得花时间去了解一下。
尝试导入steem模块,又有新问题:OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
问题出现在加载”_scrypt”这个模块上,这个模块不是一个.py文件,而是一个编译好的动态库:”_scrypt.cp36-win32.pyd”。
为什么出现这个问题?
难道是混用了 32-bit 和 64-bit的程序?通过pip安装的,应该不会弄错版本,而且安装的时候会提示:XXX is not a supported wheel on this platform.
难道是”_scrypt.cp36-win32.pyd”这个程序损坏了?将scrypt模块卸载重装,问题依旧。没招了,不知道该怎么鼓捣了。
到了第二天,突然想了想,当前scrypt模块安装的是最新版:scrypt-0.8.6,要不装旧版本的试试,然后安装了scrypt-0.8.5。
导入steem模块成功,运气真好。迷迷糊糊地从坑里爬出来了=_=。
领取专属 10元无门槛券
私享最新 技术干货