Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python rsa模块的函数错误_Python_Algorithm_Encryption_Cryptography_Rsa - Fatal编程技术网

python rsa模块的函数错误

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

我在python项目中安装了rsa算法,但当我想使用它时,我出现了以下错误:

以上代码来自

我检查模块文件中的newkeys()函数,该函数存在

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']