একটি কম্পাইল করা .pyc ফাইলটিকে একটি .py ফাইলে বিভক্ত করা সম্ভব?


উত্তর:


169

আনকম্পাইল 6 পাইথন 3.x এবং 2.7 এর জন্য কাজ করে - এটি সর্বশেষতম সরঞ্জাম হিসাবে প্রস্তাবিত বিকল্প, পূর্ববর্তী কাঁটাচামচ একত্রিত করার লক্ষ্যে এবং স্বয়ংক্রিয় ইউনিট পরীক্ষায় ফোকাস করে। GitHub পৃষ্ঠা আরো বিস্তারিত জানার হয়েছে।

  • যদি আপনি পাইথন 3.7+ ব্যবহার করেন, আপনার কাছে চেষ্টা করে দেখতে পারেন decompile3 , Uncompyle6 একটি কাঁটাচামচ 3.7 এবং উচ্চতর উপর নিকটতর নিবদ্ধ।
  • প্রয়োজনে এই প্রকল্পগুলিতে গিটহাব ইস্যুগুলি উত্থাপন করবেন - উভয়ই পাইথন সংস্করণে ইউনিট টেস্ট স্যুট চালান

পুরানো আনকম্পাইল 2 পাইথন ২.7 সমর্থন করে। কিছুক্ষণ আগে এটি আমার জন্য ভাল করে কাজ করেছিল .পিপি বাইকোডকে .py এ ছড়িয়ে দেওয়ার জন্য, যেখানে আনপাইক্লিব ব্যতিক্রম সহ ক্র্যাশ হয়েছিল।

এই সমস্ত সরঞ্জামের সাহায্যে আপনি ভেরিয়েবলের নাম সহ আপনার কোডটি ফিরে পাবেন তবে কোনও মন্তব্য ছাড়াই।


7
অনেক ধন্যবাদ. আমি দুর্ঘটনাক্রমে .pyc এর পরিবর্তে আমার .py ফাইলটি মুছে ফেলেছিলাম। এটি আমাকে স্ক্র্যাচ থেকে পুনরায় লেখার হাত থেকে বাঁচিয়েছিল।
অ্যাভমোহন

21
এখানে আপনাদের মধ্যে যারা কারণ আপনি দূর্ঘটনাক্রমে ভুল ফাইল মুছে ফেলা জন্য, আমি অত্যন্ত উৎস নিয়ন্ত্রণ সুপারিশ!
অ্যান্ড্রু পামার

30

হ্যাঁ, আপনি এটি পাইপিতেunpyclib খুঁজে পেতে পারেন ।

$ pip install unpyclib

আপনি আপনার .pyc ফাইলটি ছড়িয়ে দিতে পারেন

$ python -m unpyclib.application -Dq path/to/file.pyc

20
আমি এটি চেষ্টা করেছি এবং এটি একটি ব্যতিক্রম সহ ক্র্যাশ হয়ে গেছে, কোনও জটিল কোড (জ্যাঙ্গো সেটিংস.পি) সহ একটি ছোট্ট ফাইলটিতে - আনম্পম্পাইল 2 এর পরিবর্তে দুর্দান্ত কাজ করেছে। -1 এই কারণে।
রিচভেল

9
এটি পাইথন ৩.6 এ ল্যাব-সাইট-প্যাকেজগুলি py আনপাইক্লিবি \ অ্যাপ্লিকেশন.পি সহ ক্র্যাশ হয়েছে print __copyright- কেন এটি প্রথম বন্ধন printছাড়াই পাইথন ২.7 সংস্করণ ব্যবহার করছে ?
ডেভিড চিং

1
@ ডেভিডচিংয়ের unpyclibপ্রথম এবং শেষ প্রকাশটি ২০০৯ সালে হয়েছিল , এটি নিরাপদ এটি পাইথন ২ কেবলমাত্র প্রোগ্রাম।
বরিস

28

আপনি ইজি পাইথন ডিকম্পিলার চেষ্টা করতে পারেন । এটি ডেকম্পাইল ++ এবং আনম্পম্পাইল 2 এর উপর ভিত্তি করে। এটি অজগর সংস্করণগুলি ১.০-৩.৩ এর পচনশীল সমর্থন করে

দ্রষ্টব্য: আমি উপরের সরঞ্জামটির লেখক।


5
এটা তার কাজ করে। ভাল কাজ. বিটিডাব্লু, আপনি কি অজগরটিতে এই সরঞ্জামটি লিখেছিলেন?
shinzou

1
আমার জন্য ভাল কাজ করেছে (সহজ টানুন এবং ড্রপ)। এটি সত্য যে একটি লিনাক্স ডিস্ট্রো দুর্দান্ত হবে, তবে উইন্ডোজ বাক্সটি খোলার পক্ষে এতটা শক্ত নয়।
ব্রায়ান জ্যাকসন

2015 সালে সর্বশেষ মুক্তি এবং এটি বন্ধ উত্স বলে মনে হচ্ছে?
বরিস

13

ডেকম্পাইল ++ (পিআইসিডিসি) কেবল আমার জন্য কাজ করেছিল: https://github.com/zrax/pycdc

পাইকন ডিকম্পাইল ২.7। পিপিসিতে পরামর্শ দেওয়া হয়েছিল


1
এবং এটি পাইথন ২.6 সহ সংকলিত কোডের জন্য আমার পক্ষে কাজ করেছিল!
ডেভিড মার্টেনস

4

হ্যাঁ

আমি আনম্পম্পাইল 6 ডেকম্পাইল (এমনকি সর্বশেষ পাইথন 3.8.0 সমর্থন করি) ব্যবহার করি:

uncompyle6 utils.cpython-38.pyc > utils.py

এবং মূল অজগর এবং পচনযুক্ত অজগরটিকে দেখতে দেখতে দেখতে:

পাইক আনম্পাইল ব্যবহার

যাতে আপনি দেখতে পারেন, প্রায় একই, ডিকম্পাইল প্রভাব খুব ভাল


3

হ্যা এটা সম্ভব.

ডিকম্পাইল ++ https://github.com/zrax/pycdc/ নামে একটি নিখুঁত ওপেন সোর্স পাইথন (.PYC) ডেকম্পাইলার রয়েছে called

ডিকম্পাইল ++ এর লক্ষ্য সংকলিত পাইথন বাইট-কোডটি বৈধ এবং মানব-পঠনযোগ্য পাইথনের উত্স কোডে অনুবাদ করা। অন্য প্রকল্পগুলি বৈচিত্র্যময় সাফল্যের সাথে এটি অর্জন করেছে, ডেকম্পাইল ++ অনন্য এটি এতে পাইথনের যে কোনও সংস্করণ থেকে বাইট-কোড সমর্থন করার চেষ্টা করে।


2
পাইকডিসি ভাল হলেও এটি নিখুঁত নয়। আপনি যদি github.com/zrax/pycdc/issues দেখুন তবে এটি ক্ষয় হওয়ার ক্ষেত্রে 50 টিরও বেশি স্বতন্ত্র ধরণের সমস্যা রয়েছে। এটি পাইথনের 16 বা ততোধিক রিলিজ জুড়ে ছড়িয়ে পড়ে এবং ভাষা এবং কোড উভয়ই হ'ল পরিবর্তিত হয়েছে। এটি হতে পারে যে আপনি যে জিনিসগুলির চেষ্টা করেছেন সেগুলির জন্য আপনি কোনও সমস্যা খুঁজে পেতে সক্ষম হন নি। যাইহোক, আমার মতে, কোনও কিছুকে "নিখুঁত" হিসাবে শ্রেণীবদ্ধ করার জন্য, প্রতিটি সংস্করণের জন্য পুরো পাইথন লাইব্রেরিটি গ্রহণ করতে হবে, এটিটি ছড়িয়ে ফেলতে হবে এবং সঠিকভাবে নিজস্ব পরীক্ষা পাস করতে হবে। কোনও ডিসকম্পেলার এখনও এটি করতে পারে না।
রকী

1

পাইপ ইনস্টল পাইকম্পাইল 6 ব্যবহার করে ইনস্টল করুন

পাইকম্পাইল 6 ফাইলের নাম.পিসি

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