问题来源
在学习过RSA算法之后想着自己用python实现一下子。因为可以自己下一个Crypto包,里面的一些函数啥的用起来很方便。但是捏,我遇到了非常多的问题(也不知道为啥,我每次安装学习一个新软件的时候,配环境我总是会遇到各种各样别人遇不到的问题),然后我就花了一下午搞都没搞好…
引入包的问题
这个是刚开始的问题,也是我花了一下午都没搞好的问题。网上对于这方面的解决方法少之又少,而且大多和我遇到的还不太一样,所以就在这边将部分人遇到的问题和我遇到的问题及其对应的解决方法做个总结。
先介绍一下问题:我写的py代码是
from Crypto.Util.number import long_to_bytes
就是从Crypto.Util.number
包里导入一个long_to_bytes
函数,但是系统报错了
Import “Crypto.Util.number” could not be resolved Pylance
意思是没有被Pylance包含(识别)
原因一
可能是因为在电脑中下载了多个版本的python,但是某个版本中并没有此依赖包,可以再终端中输入pip list(anaconda 通过conda list)进行查看是否有此包,然后更换为有此依赖包的python即可。
如何更换?Ctrl+Shift+P
打开搜索栏输入Python: Select Interpreter
选择python版本。我倒是没遇到这个问题,因为我就一个python 2.7…
原因二
原因一当中的依赖包是啥呢?或者说,我们导入的这个包到底应该是什么?可以先pip install crypto
试试,但大概率是会报错的。这时需要卸载pycrypto
,然后pip install pycryptodome
。如果觉得上述过程很烦或者不知道自己下载过什么包或者已经有什么包,先pip list
查看是否有上述三个包,如果有全部删掉,用pip uninstall xxx
,最后只用下pycryptodome即可。
其实,pycrypto、pycrytodome和crypto是一个东西
,crypto在python上面的名字是pycrypto,它是一个第三方库,但是已经停止更新三年了,所以不建议安装这个库;这个时候pycryptodome就来了,它是pycrypto的延伸版本,用法和pycrypto是一模一样的;所以,直接pip install pycryptodome
即可。
最后还有一个坑,下完之后进入python安装路径。这边拿我的举例,进入C:\Python27\Lib\site-packages
找到crypto,如果首字母c是小写,改成大写! 这个坑我没有碰到,我装下来就是大写。
原因三
最后一个原因,也是我碰到的问题的根源。在上述工作都做完之后,为啥还是报错呢?是pylance插件没有识别出包的路径的原因
如何解决?Ctrl+Shift+P
打开搜索栏输入python.analysis.extraPaths
,添加你需要导入包的路径。这边就巨坑,我当时导入Crypto.Util.number
和gmpy2
这两个包,然后我分别添加了C:\Python27\Lib\site-packages\Crypto
和C:\Python27\Lib\site-packages\gmpy2
两个路径,照理说应该没问题了吧。但是是后面一个行了,但是前面一个死活不行。之后我又尝试了再进入下一层目录,下下一层目录,但是都不行…我也是大笨猪,就不知道往上一层目录走,这样不就都包含进来了吗…所以直接C:\Python27\Lib\site-packages
这样就可以了。但是就很迷惑啊,为啥前面那种方法就不行?????
就这破问题浪费我一下午。不过还是有收获的吧,以后要导入的包可以直接终端pip下载,然后导入路径,之后就可以快乐使用了。
对了,应该也是可以往setting.json文件里面这样添加的
手动安装codeLLDB
这是我在第一个问题没有解决准备摆烂但又不甘心的时候冒出来的第二个问题…不过这个问题的解决倒还算顺利。
它就莫名其妙跳出来这么个东西
Installing platform package from https://github.com/vadimcn/vscode-lldb/releases/download/v1.7.0/codelldb-x86_64-windows.vsix
好像是codeLLDB插件出了问题。如何解决?
先把这玩意卸载掉,然后再点需要重新载入,然后再安装。从上面这个网址https://github.com/vadimcn/vscode-lldb/releases/download/v1.7.0/codelldb-x86_64-windows.vsix,将codelldb-x86_64-windows.vsix
这个文件下载下来。然后拖入到codeLLDB插件的位置就可以了。这时右下角出现Reload Now弹框,点击Reload Now按钮,后面就安装完了。重启vscode完事儿。