在Windows导入python-steem遇到的问题

我以为成功安装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模块成功,运气真好。迷迷糊糊地从坑里爬出来了=_=。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181030G1NB8800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券