পাইথন ফাইল কীভাবে সংকলন করব?


57

আমি পাইথন শিখতে শুরু করেছি এবং আমি উবুন্টুতেও একজন নতুন ব্যবহারকারী। .pyফাইলগুলি সংকলনের উপায়গুলি আমার জানা দরকার । কমান্ড দিয়ে চেষ্টা করেছি

python "hello.py"

অজগর সংকলনের অন্যান্য উপায়গুলি কী কী?

উত্তর:


58

ব্রায়ানের উত্তরের সাথে যুক্ত করে, আপনি যদি টার্মিনাল থেকে কেবল একটি ফাইল বা গুচ্ছ ফাইলগুলি সংকলন করতে চান তবে py_compileমডিউলটি নিম্নলিখিত পদ্ধতিতে স্ক্রিপ্ট হিসাবে সম্পাদন করা যেতে পারে:

python -m py_compile fileA.py fileB.py fileC.py ...


9
যদি আপনি গতি চান বলে সংকলন করে থাকেন তবে আপনি পতাকাটিও যুক্ত করতে -Oপারেন python -O -m py_compile …, যা "বেসিক অনুকূলকরণ চালু করবে"। এটি মূলত assertবিবৃতি এবং কোডগুলি ছড়িয়ে দেয় if __debug__, তাই বেশিরভাগ কোডের জন্য এটির কোনও প্রভাব নেই। দেখুন man pythonএবং "কি পাইথন অপ্টিমাইজেশান করে ... না?" বিস্তারিত জানার জন্য।
ররি ও'কেনে

26

এও সচেতন থাকুন যে ফাইল চালানোর জন্য আপনার কোনও ফাইল সংকলন করার দরকার নেই.py । পাইথন হ'ল ব্যাখ্যাযুক্ত ভাষা এবং আপনি সরাসরি স্ক্রিপ্টগুলি চালাতে পারেন, হয় ব্যবহার করে:

python hello.py

অথবা স্ক্রিপ্টের #!/usr/bin/env pythonশীর্ষে যুক্ত করে আপনার স্ক্রিপ্টটি সম্পাদনযোগ্য করে তুলুন এবং এর সাথে ফাইলটি এক্সিকিউটেবলযোগ্য করে chmod +x hello.pyচালিয়ে যাবেন:

./hello.py

পারফরম্যান্সের কারণে পাইথন অভ্যন্তরীণভাবে আপনার .pyস্ক্রিপ্টটি .pycফাইলগুলি বাইটকোডে সংকলিত করে তোলে এটি বাস্তবায়নের বিশদ, এবং এটির দৃ a় কারণ না থাকলে পাইথন নিজেই সিদ্ধান্ত নিতে দেয় কখন এবং কখন সংকলন করতে হবে।


কেন এটি কাজ করে তা নিয়ে আমি বিভ্রান্ত। পাইথন ইন্টারপ্রেটারটি স্ক্রিপ্টটি চালানোর জন্য পড়তে সক্ষম হওয়ার দরকার নেই? আপনি যদি কেবল মৃত্যুদন্ড কার্যকর করার অনুমতি দেন ( chmod +x), দোভাষী কীভাবে স্ক্রিপ্টটি পড়ছেন?
হলুদ 01

@ হলুদ ০১: আপনি যখন "শেবাং" ধারণকারী একটি স্ক্রিপ্ট কার্যকর করেন, অর্থাৎ প্রথম লাইনটি শুরু হয় #!/path/to/interpreter, তখন কার্নেলটি সেখানে ঘোষিত সমস্ত কিছু কার্যকর করে, স্ক্রিপ্টের পথটিকে একটি আর্গুমেন্ট হিসাবে পাস করে। আমার উদাহরণে, আপনি চালাতে যখন ./hello.pyআসলে মৃত্যুদন্ড কার্যকর করা হয় /usr/bin/env python ./hello.py
En.wikedia.org/wiki/Shebang_

@ হলুদ ০১ আপনি ঠিক বলেছেন যে ম্যাস্ট্রিলিওন বর্ণনা করে এমন প্রক্রিয়াটি শুরু করার পরে দোভাষীকে পড়ার অনুমতিগুলির প্রয়োজন হবে। যাইহোক, chmod +xঅনুদানগুলি কার্যকর করে এবং বিদ্যমান অনুমতিগুলিকে স্পর্শ করে না সম্ভবত এটি কার্যকর করা ছাড়াও এটি পঠনযোগ্য।
spectras

11

পাইথনে এই লিঙ্কটি সংকলন করে দেখুন

পৃষ্ঠার মাঝখানে, এটি py_compile মডিউল যা আমদানি করা যায় তা নিয়ে কথা বলে। বাক্য গঠনটি নিম্নরূপ:

import py_compile

py_compile.compile("file.py")

সংকলনের এই পদ্ধতিটি পাইথন ফাইল.পি চালানোর মতো মডিউলটি চালায় না will

একটি ডিরেক্টরি রয়েছে যা একটি সম্পূর্ণ ডিরেক্টরি গাছকে সংকলন করে তবে কীভাবে কার্যকর হয় তা দেখতে আমি আপনাকে লিঙ্কটি পরীক্ষা করে দেখিয়ে দেব।

আশাকরি এটা সাহায্য করবে.



4

আপনি পাইথন স্ক্রিপ্টগুলি বিভিন্ন পদ্ধতি ব্যবহার করে বাইনারি কোডে সংকলন করতে পারেন, তবে আমি খুঁজে পেয়েছি যে নুইটকা ব্যবহার করা আরও দক্ষ।

নুইকা এক পাইথন-টু-সি ++ সংকলক যা পাইথনের প্রায় সমস্ত সংস্করণ সমর্থন করে।

কমান্ড সিনট্যাক্স তত সহজ

nuitka hello.py

এতে যান http://nuitka.net/doc/user-manual.html আরও তথ্যের জন্য।


6
আরও দক্ষ কিভাবে? কেন কেউ এটি ব্যবহার করতে চান?
মুড়ু

নুইটকা প্রকৃতপক্ষে খুব দরকারী - উদাহরণস্বরূপ, এটি আপনাকে পাইথন প্রোগ্রামগুলি কম্পিউটারে পাঠাতে দেয় যেখানে পাইথন ইনস্টল করা নেই। তবে নাইটকা পাইথন প্রোগ্রামগুলিকে সি ++ মেশিন কোডে সংকলন করার সাথে সাথে আপনি এটিকে নিষ্ক্রিয় করতে পারেন।
ব্যবহারকারী 258532
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.