সারাংশ
আপনি যে মডিউলগুলি নিয়ে কাজ করছেন সেখানে তিনটি সাধারণ বিভাগ রয়েছে:
- ওএস প্যাকেজ সিস্টেম সহ সমস্ত ব্যবহারকারীর জন্য ইনস্টল করা সমর্থনকারী প্রোগ্রামগুলি। (এটিতে পাইথনে প্রোগ্রামিং করা লোকদের দ্বারা ব্যবহৃত সরঞ্জাম এবং গ্রন্থাগারগুলিও অন্তর্ভুক্ত থাকতে পারে; নীচে দেখুন)) এর জন্য আপনি ওএস প্যাকেজগুলি ব্যবহার করতে পারেন
pip
যেখানে প্রয়োজন এবং সিস্টেম ডিরেক্টরিতে যেখানে প্রয়োজন সেখানে ইনস্টল করেন।
- কোনও বিশেষ ব্যবহারকারীর দ্বারা কেবল তার নিজের ব্যবহারের জন্য এবং সেইসাথে পাইথনের "ডে-টু-ডে" ব্যবহারের নির্দিষ্ট দিকগুলির জন্য স্ক্রিপ্টিং ভাষা হিসাবে এটি সমর্থনকারী প্রোগ্রামগুলি নির্দিষ্ট করে। এগুলির জন্য তিনি
pip --user
সম্ভবত পাইএনভ বা পাইথনজ এবং অনুরূপ সরঞ্জাম এবং কৌশলগুলি ব্যবহার করেন।
- যারা নির্দিষ্ট অ্যাপ্লিকেশনটির বিকাশ এবং ব্যবহারকে সমর্থন করছেন। এগুলির জন্য আপনি
virtualenv
(বা অনুরূপ কোনও সরঞ্জাম) ব্যবহার করেন।
এখানে প্রতিটি স্তর পূর্বের স্তর থেকেও সমর্থন পাচ্ছে। উদাহরণস্বরূপ, আমাদের ব্যবহারকারী (2) ওএস প্যাকেজগুলির মাধ্যমে ইনস্টল করা পাইথন ইন্টারপ্রেটারের উপর নির্ভর করতে পারে।
আরও কিছুটা বিশদে এটিতে যাওয়া:
সিস্টেম প্রোগ্রাম এবং প্যাকেজগুলি
পাইথনে লেখা প্রোগ্রামগুলি যে আপনি "সবেমাত্র চালাতে" চান তা সহজ: কেবল ওএস ইনস্টল সরঞ্জাম ব্যবহার করুন এবং তাদের যা প্রয়োজন প্রয়োজন তা আনতে দিন; এটি পাইথনবিহীন প্রোগ্রাম থেকে আলাদা নয়। এটি পাইথন সরঞ্জাম / গ্রন্থাগারগুলি আনতে পারে (যেমন পাইথন ইন্টারপ্রেটার নিজেই!) আপনার মেশিনে থাকা ব্যবহারকারীরা নির্ভর করতে শুরু করতে পারেন; এটি এত দিন সমস্যা হয় না যতক্ষণ না তারা নির্ভরতা বোঝে এবং, আদর্শভাবে, হোস্টগুলিতে এটি পরিচালনা করার বিকল্প উপায়গুলি জানেন যা এই নির্ভরতাগুলি সরবরাহ করে না।
একটি সাধারণ এবং এই ধরনের একটি নির্ভরতা সহজ উদাহরণে আমার ব্যক্তিগত স্ক্রিপ্ট কিছু হয় ~/.local/bin/
যে শুরু #!/usr/bin/env python
। এগুলি সূক্ষ্মভাবে কাজ করবে (যতক্ষণ না তারা পাইথন 2 এর অধীনে চলেছে) আরএইচ / সেন্টোস 7 এ এবং বেশিরভাগ (তবে সমস্ত নয়) উবুন্টু ইনস্টল করে; এগুলি কোনও বেসিক ডেবিয়ান ইনস্টলের অধীনে বা উইন্ডোতে হবে না। আমি ওএস প্যাকেজগুলির উপর নির্ভরশীলতার পথে আমার ব্যক্তিগত পরিবেশকে অপছন্দ করি (আমি বিভিন্ন ওএসের সংখ্যায় কাজ করি), এর মতো কিছু আমি মোটামুটি গ্রহণযোগ্য মনে করি; বিরল হোস্টগুলিতে আমার ব্যাকআপ পরিকল্পনাটি নেই যে সিস্টেম পাইথন নেই এবং এটি পেতে পারে না নীচে বর্ণিত হিসাবে একটি ব্যবহারকারী সিস্টেমের সাথে যেতে হবে।
সিস্টেম অজগর দোভাষী ব্যবহারকারী ব্যক্তিরা সাধারণত সিস্টেমের উপর নির্ভরশীল pip3
। আমি প্রায়শই আমার সিস্টেমের নির্ভরতার উপর লাইনটি আঁকি সেই বিষয়ে; virtualenv
সামনে থেকে সবকিছু আমি নিজের সাথে ডিল করি। (উদাহরণস্বরূপ, আমার স্ট্যান্ডার্ড অ্যাক্টিভেট স্ক্রিপ্টটি যে কোনও পথে pip3
বা pip
যা আছে তার উপর নির্ভর করে তবে virtualenv
এটি তৈরি করছে ভার্চুয়াল পরিবেশ বুটস্ট্র্যাপ করার জন্য নিজস্ব কপিটি ডাউনলোড করে ।
এটি বলেছিল, সম্ভবত এমন পরিস্থিতি রয়েছে যেখানে উন্নয়নের আরও বেশি পরিবেশের ব্যবস্থা করা একেবারে যুক্তিসঙ্গত। আপনার পাইথন ইন্টারফেসগুলি জটিল প্যাকেজগুলির মধ্যে থাকতে পারে (যেমন একটি ডিবিএমএস) যেখানে আপনি এটির সিস্টেম সংস্করণ ব্যবহার করতে চান এবং আপনার মনে হয় এটি সর্বোত্তম you আপনি সিস্টেমটি নির্দিষ্ট পাইথন লাইব্রেরি কোডটি বেছে নিতে দিয়েছিলেন যার সাথে এটি কথা বলার জন্য ব্যবহার করবেন। অথবা আপনি পাইথন ক্লাসের জন্য বেসিক বিকাশের পরিবেশ সহ প্রচুর হোস্ট স্থাপন করতে পারেন এবং স্ট্যান্ডার্ড সিস্টেম প্যাকেজগুলির সাহায্যে স্বয়ংক্রিয়ভাবে সন্ধান করা সবচেয়ে সহজ বলে মনে করছেন।
ব্যবহারকারী "দিন-দিন" প্রোগ্রাম এবং প্যাকেজগুলি
ব্যবহারকারীরা পাইথন লাইব্রেরী বা প্রোগ্রাম যা একটি ভার্চুয়াল পরিবেশে ভাল মাপসই করা হবে না, কারণ তারা সাহায্য করতে চেয়েছিলাম করছি প্রথম স্থানে ভার্চুয়াল পরিবেশে (যেমন, তৈরি হতে পারে virtualenvwrapper ) অথবা তারা জিনিষ আপনি সাধারণত কমান্ড লাইন এমনকি যখন থেকে ব্যবহার পাইথন নন কাজ করে এগুলির সিস্টেম সংস্করণ ইনস্টল করার ক্ষমতা তাদের মধ্যে থাকলেও তারা তাদের নিজস্ব ইনস্টল করার ক্ষেত্রে আরও স্বাচ্ছন্দ্য বোধ করতে পারে (উদাহরণস্বরূপ, কারণ তারা সরঞ্জামটির সর্বশেষতম সংস্করণ এবং এর নির্ভরতা ব্যবহার করতে চায়)।
সাধারণত pip --user
লোকেরা এটির জন্য কী ব্যবহার করবে, যদিও নির্দিষ্ট নির্ভরতা যেমন পাইথন ইন্টারপ্রেটার নিজেই এর চেয়ে কিছুটা বেশি প্রয়োজন। পাইয়ানভ এবং পাইথনজ ব্যক্তিগত দোভাষী তৈরি করতে ( ~/.local/bin
ডিফল্ট দোভাষী বা অন্যথায় ইনস্টলড থাকা সত্ত্বেও ) দরকারী এবং দেব গ্রন্থাগারগুলি যদি উপলব্ধ থাকে তবে অবশ্যই সর্বদা উত্স থেকে "হাতে" তৈরি করা যায়।
আমি এখানে বেয়ার ন্যূনতম সেটগুলি ইনস্টল করে রাখার চেষ্টা করি: ভার্চুয়ালেনভ্রাপার (কারণ আমি এটি ক্রমাগত ব্যবহার করি) এবং সম্ভবত পাইপের সর্বশেষতম সংস্করণ। আমি অনেক হোস্ট জুড়ে ব্যবহার করার জন্য লিখি ব্যক্তিগত স্ক্রিপ্টগুলির জন্য আমি স্ট্যান্ডার্ড লাইব্রেরির বাইরে বা পাইথন 3 এ নির্ভরতা এড়াতে চেষ্টা করি। (যদিও আমরা এই ব্যক্তিগত স্ক্রিপ্টগুলি আরও বেশি করে পাইথনে স্থানান্তরিত করতে দেখি আমি কতক্ষণ তা সহ্য করতে পারি))
অ্যাপ্লিকেশন বিকাশ এবং রানটাইম পরিবেশ পৃথক করুন
এটি হ'ল স্বাভাবিক ভার্চুয়ালেনভ জিনিস। বিকাশের জন্য আপনি প্রায় সর্বদা ভার্চুয়ালেনভ ব্যবহার করা উচিত তা নিশ্চিত করতে আপনি সিস্টেমের নির্ভরতা ব্যবহার করছেন না, বা প্রায়শই একাধিক পাইথন সংস্করণের বিপরীতে পরীক্ষা করতে পারেন।
এই ভার্চুয়াল পরিবেশগুলি যেখানে আপনি আপনার ব্যবহারকারীর পরিবেশকে দূষিত করা এড়াতে চান সেখানে প্রচুর নির্ভরতা সহ অ্যাপ্লিকেশনগুলির জন্যও ভাল। উদাহরণস্বরূপ আমি সাধারণত জুপিটার নোটবুকগুলি চালানোর জন্য একটি ভার্চুয়ালেনভ সেট করি এবং এর মতো।