Python3中根据p、q、e参数生成RSA私钥文件报错: keypair.p = p AttributeError: can't set attribute

网上有关python使用Crypto库生成p、q、e参数生成RSA私钥文件报错: 无法执行;
怀疑问题出在keypair的赋值上(p,q,e不能这样直接赋值吧?),
根据分析,判断以下代码运行在python2环境,那么在python3环境下如何修改如下代码保障正常运行呢?
(1)已找出1处: python2的long()函数在python3中已经不存在,而是改用int()函数。
(2)其他呢:???

import math
import sys
from Crypto.PublicKey import RSA

keypair = RSA.generate(1024)
keypair.p = 440140550843727826962832356360132665339
keypair.q = 420226057252427765877741059207519510621
keypair.e = 65537

keypair.n = keypair.p * keypair.q  
Qn = long((keypair.p-1) * (keypair.q-1)) 

i = 1
while (True):
    x = (Qn * i ) + 1
    if (x % keypair.e == 0):
        keypair.d = x / keypair.e  
        break
    i += 1

private = open('private.pem','w') 
private.write(keypair.exportKey()) 
private.close()

https://eqqie.cn/index.php/laji_note/585/

python3得改用pycryptodome

https://www.cnblogs.com/new-june/p/9401002.html

我为什么在py2.7 环境下报错
keypair.p=275127860351348928173285174381581152299
AttributeError: can't set attribute