অ্যাট্রিবিউটআরার: পাইথন ৩.৮-তে মডিউল 'টাইম'-এর কোনও অ্যাট্রিবিউট' ক্লক 'নেই


23

আমার কাছে সরকারী এবং ব্যক্তিগত কী তৈরি করার কোড রয়েছে written এটি পাইথন ৩.7 এ দুর্দান্ত কাজ করে তবে পাইথন ৩.৮ এ ব্যর্থ হয়। আমি জানি না কীভাবে এটি সর্বশেষতম সংস্করণে ব্যর্থ হয়। কিছু সমাধানে আমাকে সহায়তা করুন।

কোডটি এখানে:

from Crypto.PublicKey import RSA


def generate_keys():
    modulus_length = 1024
    key = RSA.generate(modulus_length)
    pub_key = key.publickey()
    private_key = key.exportKey()
    public_key = pub_key.exportKey()
    return private_key, public_key


a = generate_keys()
print(a)

পাইথন 3.8 সংস্করণে ত্রুটি:

Traceback (most recent call last):
  File "temp.py", line 18, in <module>
    a = generate_keys()
  File "temp.py", line 8, in generate_keys
    key = RSA.generate(modulus_length)
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/PublicKey/RSA.py", line 508, in generate
    obj = _RSA.generate_py(bits, rf, progress_func, e)    # TODO: Don't use legacy _RSA module
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/PublicKey/_RSA.py", line 50, in generate_py
    p = pubkey.getStrongPrime(bits>>1, obj.e, 1e-12, randfunc)
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/Util/number.py", line 282, in getStrongPrime
    X = getRandomRange (lower_bound, upper_bound, randfunc)
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/Util/number.py", line 123, in getRandomRange
    value = getRandomInteger(bits, randfunc)
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/Util/number.py", line 104, in getRandomInteger
    S = randfunc(N>>3)
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 202, in read
    return self._singleton.read(bytes)
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 178, in read
    return _UserFriendlyRNG.read(self, bytes)
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 129, in read
    self._ec.collect()
  File "/home/paulsteven/.local/lib/python3.8/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 77, in collect
    t = time.clock()
AttributeError: module 'time' has no attribute 'clock'

ক্রিটপো লাইবটিতে এখানে উল্লেখ করা হয়েছে: github.com/dlitz/pycrypto/issues/283 তবে টিকিটটি এক বছরের পর থেকে বন্ধ বলে মনে হচ্ছে না।
ফ্যাবিয়ান এন্টোইন

উত্তর:


22

থেকে পাইথন 3.8 ডক :

time.clock()পাইথন ৩.৩ থেকে অবহেলিত হওয়ার পরে ফাংশনটি সরিয়ে ফেলা হয়েছে: আপনার প্রয়োজনীয়তার উপর নির্ভর করে ভাল-সংজ্ঞায়িত আচরণ করতে ব্যবহার করুন time.perf_counter()বা time.process_time()তার পরিবর্তে। (বিপিও -36895- এ ম্যাথিয়াস বুসননিয়ার অবদান রেখেছেন ))


1

আপনি কী কলটি তৈরি করতে যে মডিউলটি ব্যবহার করেন সেই পদ্ধতিটি অজগর ৩.৩ সময় থেকে অবহিত করা হয়েছে এমন একটি পদ্ধতি .c

আপনি পাইথন ৩.7 এ ডাউনগ্রেড করতে পারেন বা এটির পরিবর্তনের জন্য সোর্স কোড পরিবর্তন করতে পারেন। আপনার এটির জন্যও একটি সমস্যা খোলা উচিত।


0
AttributeError: module 'time' has no attribute 'clock' 

এটি অবহিত হিসাবে বলা হয়েছে যার অর্থ কেবলমাত্র সেই মডিউলটিতে থাকা লাইব্রেরির সর্বশেষতম সংস্করণগুলি ব্যবহার করুন। উদাহরণস্বরূপ, আপনার যে নির্ভরতা রয়েছে তার উপর নির্ভর করে সরান এবং ইনস্টল করুন

ক্রিপ্টো == 1.4.1, বা মাকো == 1.1.2 বা এসকিউএএলএলচেমি == 1.3.6 // ইত্যাদি

ধারণাটি হ'ল আপনাকে আপনার অজগর সংস্করণটি ডাউনগ্রেড করতে হবে না কারণ এটি পরে আপনার সাথে ধরা পড়বে। পাইথন ৩.৮ এর সাথে সামঞ্জস্যপূর্ণ আরও দেরীতে প্যাকেজগুলি আপডেট করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.