python rsa模块的函数错误
我在python项目中安装了rsa算法,但当我想使用它时,我出现了以下错误: 以上代码来自 我检查模块文件中的newkeys()函数,该函数存在python rsa模块的函数错误,python,algorithm,encryption,cryptography,rsa,Python,Algorithm,Encryption,Cryptography,Rsa,我在python项目中安装了rsa算法,但当我想使用它时,我出现了以下错误: 以上代码来自 我检查模块文件中的newkeys()函数,该函数存在 def newkeys(nbits,accurial=True,poolsize=1): 如果nbits1: 从rsa导入并行 导入功能工具 getprime\u func=functools.partial(parallel.getprime,poolsize=poolsize) else:getprime_func=rsa.prime.getp
def newkeys(nbits,accurial=True,poolsize=1):
如果nbits<16:
raise VALUERROR('键太小')
如果池大小小于1:
raise VALUESERROR('池大小(%i)应大于等于1'%poolsize)
如果池大小>1:
从rsa导入并行
导入功能工具
getprime\u func=functools.partial(parallel.getprime,poolsize=poolsize)
else:getprime_func=rsa.prime.getprime
(p,q,e,d)=gen_键(nbits,getprime_func)
n=p*q
返回(公钥(n,e),私钥(n,e,d,p,q))
__all_uu=['PublicKey'、'PrivateKey'、'newkeys']
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
进口医生测试
尝试:
对于范围内的计数(100):
(失败,测试)=doctest.testmod()
如果出现故障:
打破
如果(计数和计数%10==0)或计数==1:
打印(“%i乘以“%count”)
除键盘中断外:
打印('已中止')
其他:
打印('Doctests done')
这里出了什么问题?因此,事实证明,您遇到了Python的一个相当奇怪的属性,即您可以导入当前文件的模块。您的
rsa.py
文件隐藏在rsa
目录下(该目录包含一个\uuuu init\uuuuuuuuuuuupy
文件,因此可以将其作为模块加载)
尝试创建一个包含以下内容的文件foo.py
import foo
def bar():
return 5
print dir(foo)
这将打印如下内容
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bar', 'foo']
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bar', 'foo']
当您运行python foo.py
它打印目录结构两次(加载模块时打印一次),评估文件时打印一次
这不会导致无限循环,因为Python会缓存已加载的模块。多亏了Gregory:
1-首先,*.py文件名和导入的模块名不能相同。。。。如果我们用同一个名字来称呼他们,像我这样的问题就会出现。IDLE无法识别运行文件的写入方式
2-本模块存在严重问题。当我想使用newkeys()函数的poolsize=x参数时,我的程序中有很多错误和一个大循环。这是因为该模块的多处理在Windows 10中不起作用。此问题可能由Windows或module引起。python-c“导入rsa;打印(dir(rsa));打印(rsa.\uuu文件)”的输出是什么。?与上述@GregoryNisbet相同的错误。。。。。我正在编辑您是通过
pip
安装python rsa模块还是通过复制文件安装的?能否尝试将H:\Work\python Django\Projects\rsa\rsa.py
中的文件重命名为其他文件,然后再次运行并查看错误是否发生了变化?另外,您的rsa.py
文件用于什么?从好的方面来看,您的python rsa
模块似乎安装正确,并且包含newkeys
方法。我想先测试这个模块,然后在我的项目中使用它。。。。。通过重命名该文件,我没有任何错误,但有许多关于模块功能的描述行,我无法理解其中任何一行。。。。。噢:(@GregoryNisbet)
import foo
def bar():
return 5
print dir(foo)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bar', 'foo']
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bar', 'foo']