python - Setup.py কি?




5 Answers

setup.py একটি পাইথন ফাইল, যা সাধারণত আপনাকে বলে যে আপনি যে মডিউল / প্যাকেজটি ইনস্টল করতে চলেছেন তা প্যাকেট এবং Distutils দিয়ে বিতরণ করা হয়েছে যা পাইথন মডিউলগুলি বিতরণ করার জন্য আদর্শ।

এটি আপনাকে পাইথন প্যাকেজগুলি সহজেই ইনস্টল করতে দেয়। প্রায়শই এটি লিখতে যথেষ্ট হয়:

$ python setup.py install

এবং মডিউল নিজেই ইনস্টল হবে।

https://docs.python.org/3/installing/index.html#installing-index

যে কেউ ব্যাখ্যা করতে পারেন, setup.py কি এবং এটি কনফিগার বা ব্যবহার করা যাবে কিভাবে?




setup.py পাইথনের একটি মাল্টি-প্ল্যাটফর্ম ইনস্টলারের উত্তর এবং ফাইল তৈরি করে।

আপনি যদি কমান্ড লাইন ইনস্টলেশনের সাথে পরিচিত হন, তবে python setup.py build && python setup.py install অনুবাদগুলি python setup.py build && python setup.py install

কিছু প্যাকেজ বিশুদ্ধ পাইথন, এবং শুধুমাত্র বাইট কম্পাইল করা হয়। অন্যরা নেটিভ কোড ধারণ করতে পারে, যার জন্য একটি নেটিভ কম্পাইলার (যেমন gcc বা cl ) এবং পাইথন ইন্টারফেসিং মডিউল ( swig বা pyrex ) প্রয়োজন হবে।




setup.py একটি পাইথন স্ক্রিপ্ট যা সাধারণত লাইব্রেরি বা প্রোগ্রামে পাঠানো হয়, যে ভাষায় লেখা থাকে। এটি উদ্দেশ্য সফ্টওয়্যার সঠিক ইনস্টলেশন।

অনেক প্যাকেজ distutils এর সাথে distutils ফ্রেমওয়ার্ক ব্যবহার করে।

http://docs.python.org/distutils/




যখন আপনি setup.py সাথে একটি প্যাকেজ ডাউনলোড করেন তখন আপনার টার্মিনাল (ম্যাক, লিনাক্স) বা কমান্ড প্রম্পট (উইন্ডোজ) খুলুন। cd ব্যবহার করে এবং Tab ট্যাবের সাহায্যে আপনাকে সহায়তা করে যেখানে আপনি ফাইলটি ডাউনলোড করেছেন সেই ফোল্ডারটিতে সঠিক পথ সেট করুন এবং যেখানে setup.py :

iMac:~ user $ cd path/pakagefolderwithsetupfile/

এন্টার টিপুন, আপনাকে এমন কিছু দেখতে হবে:

iMac:pakagefolderwithsetupfile user$

তারপর এই python setup.py install পরে টাইপ করুন:

iMac:pakagefolderwithsetupfile user$ python setup.py install

enter । সম্পন্ন!




setup.py একটি পাইথন ফাইল অন্য যেকোন মত। এটি কোনও নাম নিতে পারে, কনভেনশন ব্যতীত এটি setup.py করা হয় setup.py যাতে প্রতিটি স্ক্রিপ্টের সাথে কোনও ভিন্ন পদ্ধতি নেই।

পাইথন মডিউল ইনস্টল করার জন্য প্রায়শই setup.py ব্যবহৃত হয় তবে সার্ভার অন্যান্য উদ্দেশ্যে:

মডিউল:

সম্ভবত এটি setup.py সবচেয়ে বিখ্যাত ব্যবহার মডিউলগুলিতে রয়েছে। যদিও তারা pip ব্যবহার করে ইনস্টল করা যেতে পারে, পুরাতন পাইথন সংস্করণগুলি ডিফল্টরূপে pip অন্তর্ভুক্ত করে নি এবং তাদের আলাদাভাবে ইনস্টল করা প্রয়োজন।

যদি আপনি কোনও মডিউল ইনস্টল করতে চান তবে pip ইনস্টল করতে না চান তবে setup.py কেবলমাত্র বিকল্প বিকল্প সেটআপ ফাইল থেকে ইনস্টল করা ছিল। এটি python setup.py install যেতে পারে। এটি মূল অভিধানে পাইথন মডিউল ইনস্টল করবে ( pip ছাড়া, easy_install ect)।

pip ব্যর্থ হলে এই পদ্ধতি প্রায়ই ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি পছন্দসই প্যাকেজের সঠিক পাইথন সংস্করণটি pip মাধ্যমে উপলব্ধ না হয় তবে এটি সম্ভবত রক্ষণাবেক্ষণ করা হয় না, কারণ সোর্স ডাউনলোড এবং চলমান python setup.py install একই জিনিস সম্পাদন করবে, সংকলিত বাইনারিগুলির ক্ষেত্রে প্রয়োজন নেই , (তবে পাইথন সংস্করণটি উপেক্ষা করবে - যদি না একটি ত্রুটি ফেরত দেওয়া হয়)।

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

পাইথন এক্সটেনশান নির্মাণ:

একটি মডিউল তৈরি করা হয়েছে যখন এটি একটি distutils সেটআপ স্ক্রিপ্ট ব্যবহার করে বন্টনের জন্য মডিউল প্রস্তুত রূপান্তর করা যাবে। একবার নির্মিত উপরে এই কমান্ড ব্যবহার করে ইনস্টল করা যাবে।

একটি সেটআপ স্ক্রিপ্ট নির্মাণ করা সহজ এবং ফাইলটি সঠিকভাবে কনফিগার করা হয়ে গেলে এবং python setup.py build চালানোর মাধ্যমে সংকলিত করা যেতে পারে (সমস্ত কমান্ডের লিঙ্ক দেখুন)।

আবার ব্যবহারের জন্য এবং কনভেনশন অনুসারে এটি setup.py নামকরণ করা হয়েছে তবে কোনও নাম নিতে পারে।

Cython:

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

from distutils.core import setup
from Cython.Build import cythonize

setup(
    name = 'Hello world app',
    ext_modules = cythonize("hello.pyx"),
)

এটি python setup.py build মাধ্যমে কম্পাইল করা যেতে পারে

Cx_Freeze:

একটি সেটআপ স্ক্রিপ্ট প্রয়োজন আরেকটি মডিউল cx_Freeze । এটি পাইথন স্ক্রিপ্টকে এক্সিকিউটেবলগুলিতে রূপান্তর করে। এটি বর্ণনা, নাম, আইকন, প্যাকেজগুলি অন্তর্ভুক্ত করার জন্য অনেকগুলি কমান্ডের অনুমতি দেয়, ect বাদ দিয়ে এবং একবার চালানো একটি বিতরণযোগ্য অ্যাপ্লিকেশন তৈরি করবে। documentation থেকে একটি উদাহরণ:

import sys
from cx_Freeze import setup, Executable
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]} 

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(  name = "guifoo",
        version = "0.1",
        description = "My GUI application!",
        options = {"build_exe": build_exe_options},
        executables = [Executable("guifoo.py", base=base)])

এটি python setup.py build মাধ্যমে কম্পাইল করা যেতে পারে।

সুতরাং একটি setup.py ফাইল কি?

বেশ সহজভাবে এটি একটি স্ক্রিপ্ট যা পাইথন পরিবেশে কিছু তৈরি বা কনফিগার করে।

বিতরণ করার সময় একটি প্যাকেজ শুধুমাত্র একটি সেটআপ স্ক্রিপ্ট থাকা উচিত তবে এটি একক সেটআপ স্ক্রিপ্টে একত্রিত হওয়া অসাধারণ নয়। লক্ষ্য করুন এই প্রায়ই distutils জড়িত কিন্তু সবসময় না (হিসাবে আমি আমার শেষ উদাহরণ দেখানো)। এটি মনে রাখা জিনিসটি কিছু উপায়ে পাইথন প্যাকেজ / স্ক্রিপ্ট কনফিগার করে।

এটি নামটি নেয় তাই বিল্ডিং বা ইনস্টলেশনের সময় একই কমান্ড ব্যবহার করা যেতে পারে।




Related

python python-3.x setup.py pypi python-packaging