পাইপ বনাম প্যাকেজ ম্যানেজার পাইথন প্যাকেজ পরিচালনা করার জন্য


20

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

যাইহোক, কারণ এটি একটি বেমানান ইনস্টলেশন পদ্ধতি, কেবল পিপ ব্যবহার করা কি ভাল? উভয় জায়গায় উপলব্ধ প্যাকেজগুলির জন্য সিস্টেমের নিজস্ব সংগ্রহস্থল থেকে পাইপ ব্যবহার করার সুবিধা / অবজ্ঞাকারীরা কী কী?

আমি লিঙ্কগুলিতে রাজ্যগুলি অন্তর্ভুক্ত করেছি

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

আমি খিলান ব্যবহার করি এটিপটি ছাড়াও অন্যান্য প্যাকেজ-পরিচালনা সিস্টেমের ক্ষেত্রেও কি এই অবস্থা?

উত্তর:


21

pipআপনার সিস্টেমে পাইথন মডিউলগুলি ইনস্টল করার সাথে সাথে সিস্টেম মডিউল বা ব্যবহারকারী মডিউল হিসাবে ব্যবহার করে আমি সবচেয়ে বড় অসুবিধাটি দেখতে পাচ্ছি তা হ'ল আপনার বিতরণের প্যাকেজ ম্যানেজমেন্ট সিস্টেম সেগুলি সম্পর্কে জানতে পারবে না। এর অর্থ হ'ল এগুলি অন্য কোনও প্যাকেজের জন্য ব্যবহার করা হবে না যা তাদের প্রয়োজন, এবং যা আপনি ভবিষ্যতে ইনস্টল করতে চাইতে পারেন (বা যা কোনও আপগ্রেডের পরে মডিউলগুলির মধ্যে একটির ব্যবহার শুরু করতে পারে); তারপরে আপনি উভয়ই শেষ করে ফেলবেন pip- এবং মডিউলগুলির বিতরণ-পরিচালিত সংস্করণগুলি, যা সমস্যার কারণ হতে পারে (আমি সম্প্রতি এর আরও একটি উদাহরণে চলে এসেছি )। সুতরাং আপনার প্রশ্নটি সর্বদাই বা কিছুই নয়, আপনি যদি কেবলমাত্র ব্যবহার করেনpip পাইথন মডিউলগুলির জন্য, আপনি পাইথন মডিউলটি ব্যবহার করতে চায় এমন কোনও কিছুর জন্য আপনার বিতরণের প্যাকেজ ম্যানেজারটি আর ব্যবহার করতে পারবেন না ...

আপনার লিঙ্ক করা পৃষ্ঠায় দেওয়া সাধারণ পরামর্শটি খুব ভাল: আপনার বিতরণের প্যাকেজগুলি যথাসম্ভব ব্যবহার করার চেষ্টা করুন, কেবল pipপ্যাকেজযুক্ত নয় এমন মডিউলগুলির জন্য ব্যবহার করুন এবং যখন আপনি এটি করেন তখন এটি আপনার ব্যবহারকারী সেটআপে করুন এবং সিস্টেম- ওয়াইড। মডিউল বিকাশের জন্য, যথাসম্ভব ভার্চুয়াল পরিবেশ ব্যবহার করুন। বিশেষত আর্কে, আপনার পুরানো মডিউলগুলির কারণে সৃষ্ট সমস্যাগুলিতে চলতে হবে না; এমনকি বিতরণগুলিতে যেখানে এটি সমস্যা হতে পারে সেখানে ভার্চুয়াল পরিবেশগুলি এটির সাথে সহজেই মোকাবেলা করে।

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


1
সত্য যে আমরা এই দ্বৈতত্ত্ব বা দ্বন্দ্বের সাথে আটকে আছি সত্যই দুর্ভাগ্যজনক, সম্ভবত আমাদের পাইথন এবং অফিসিয়াল রেপোসে এটি সমাধানের জন্য কাজ করা উচিত
বিড়াল

ব্যবহার না করার সাথে আমি যে ঝুঁকিটি দেখছি তা pipহ'ল আপনি যদি দুর্ঘটনাক্রমে pip uninstallকোনও ডিস্ট্রো-ম্যানেজড প্যাকেজ?
মেহরদাদ

@ মেহরদাদ আপনি যে সংখ্যাগরিষ্ঠ ক্ষেত্রে pipব্যবহারকারী হিসাবে চালাবেন (একটি ভার্চুয়ালেনভের সাথে জড়িত হয়ে), এবং যেমন আপনার সিস্টেম-ইনস্টল করা ফাইলগুলিতে গোলযোগ করার অনুমতি নেই।
মার্সেলেম

1
@ মার্কসেল: আমি অনুমান করি আপনি যদি লিনাক্স মেশিন হন এবং কেউ আপনাকে ব্যবহার না করা শিখিয়ে থাকে sudo pipতবে (যদিও তারপরেও, আপনি যখন ব্যবহার করেন সবাই অনুমান করেন তখন আপনি খুব বেশিভাবে ধরে নিচ্ছেন virtualenv) তবে উদাহরণস্বরূপ আমি এমএসওয়াইএস 2 (উইন্ডোজ) ব্যবহার করি যেখানে এটি সহজভাবে প্রযোজ্য না। পাইথন প্যাকেজ ইনস্টল করার জন্য আমার কাছে দুটি বিকল্প রয়েছে: pacmanএবং pip। আমাকে কোনটি ইনস্টল করতে ব্যবহৃত হয় তা মাথায় রাখতে হবে কারণ আনইনস্টল করতে ভুলটিকে ব্যবহার করা জিনিসগুলিকে স্ক্রু করবে।
মেহরদাদ

10

টি এল; ডিআর

  • আপনার প্রকল্পগুলি (যেগুলি আপনি বিকাশ করেছেন) pipস্টাফের (libs, ফ্রেমওয়ার্কগুলি, সম্ভবত দেব সরঞ্জামগুলি) ব্যবহারের জন্য (+ ভ্যুচুয়ালেনভ ) ব্যবহার করুন
  • আপনি যে অ্যাপ্লিকেশনগুলি ব্যবহার করেন তার জন্য প্যাকেজ ম্যানেজার ব্যবহার করুন (শেষ ব্যবহারকারী হিসাবে)

উন্নয়ন নির্ভরতা

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

এর বেশ কয়েকটি কারণ রয়েছে:

  • এই আপনি ব্যবহার করার অনুমতি দেয় virtualenv অথবা (সরাসরি বা virtualenvwrapper বা pipenv বা অন্যান্য উপায়ে পারেন) একে অপরের থেকে ভিন্ন প্রকল্পের নির্ভরতা আলাদা করতে এবং কোন বহিরাগত দূর্ভাগ্য থেকে ব্যবহার করুন "উৎপাদনে" (একটি ব্যবহারকারী হিসেবে) পাইথন অ্যাপ্লিকেশন বিছিন্ন ( এমনকি কেবলমাত্র অসম্পূর্ণতা) যা বিকাশে যেতে পারে।
  • এটি আপনাকে requirements.txt(যদি আপনার প্রকল্পটি কোনও অ্যাপ্লিকেশন হয়) বা setup.py(যদি আপনার প্রকল্পটি কোনও লাইব্রেরি বা কাঠামো হয়) ফাইলের মধ্যে প্রকল্পের সমস্ত নির্ভরতা ট্র্যাক করতে দেয় । এটি উত্স কোডের সাথে একসাথে সংশোধন নিয়ন্ত্রণে (উদাহরণস্বরূপ গিট) যাচাই করা যেতে পারে, যাতে আপনি সর্বদা জানতে পারবেন যে আপনার কোডের কোন সংস্করণ আপনার নির্ভরতার কোনও সংস্করণে নির্ভর করেছে lied
  • উপরেরগুলি অন্যান্য বিকাশকারীদের একই প্রকল্পে একই লিনাক্স বিতরণ ব্যবহার না করে বা একই অপারেটিং সিস্টেম ব্যবহার না করেও সক্ষম করে তোলে (যদি ব্যবহৃত নির্ভরতা ম্যাক এবং উইন্ডোতেও পাওয়া যায় বা তারা যা ব্যবহার করে তবে তা হ'ল)
  • আপনার কোডটি ভাঙার জন্য আপনি আপনার অপারেটিং সিস্টেমের প্যাকেজ ম্যানেজারের স্বয়ংক্রিয় আপডেটগুলি চান না। আপনার নিজের নির্ভরতা আপডেট করা উচিত তবে আপনার সচেতনতার সাথে এবং আপনি যখন পছন্দ করেন এমন সময়ে আপনার উচিত, যাতে আপনি নিজের কোড ঠিক করতে বা আপডেটটি ব্যাক করতে প্রস্তুত থাকতে পারেন। (আপনি যদি আপনার কোড সহ আপনার পুনর্বিবেচনা নিয়ন্ত্রণ সিস্টেমে সম্পূর্ণ নির্ভরতা ঘোষণার ট্র্যাক করেন তবে কোনটি সহজ))

আপনি যদি মনে করেন যে আপনাকে প্রত্যক্ষ ও অপ্রত্যক্ষ নির্ভরতা আলাদা করতে হবে (বা নির্ভরযোগ্যতার জন্য গ্রহণযোগ্য সংস্করণ পরিসীমা এবং ব্যবহৃত প্রকৃত সংস্করণের মধ্যে পার্থক্য করতে হবে, সিএফ। "সংস্করণ পিনিং") পিপ-সরঞ্জাম এবং / অথবা পাইপেনভের দিকে তাকাতে হবে। এটি আপনাকে বিল্ড এবং পরীক্ষার নির্ভরতাগুলির মধ্যে পার্থক্য করতে দেয়। (বিল্ড এবং রানটাইম নির্ভরতাগুলির মধ্যে পার্থক্য সম্ভবত এনকোড করা যেতে পারে setup.py)

আপনি ব্যবহার অ্যাপ্লিকেশন

আপনি সাধারণ অ্যাপ্লিকেশন হিসাবে যে স্টাফ ব্যবহার করেন এবং পাইথনে কেবল এটি লেখা যায়, আপনার অপারেটিং সিস্টেমের প্যাকেজ ম্যানেজারটিকে পছন্দ করুন। এটি নিশ্চিত করবে যে এটি প্যাকেজ ম্যানেজারের দ্বারা ইনস্টল হওয়া অন্যান্য সামগ্রীর সাথে যথাযথভাবে আপ-টু-ডেট এবং উপযুক্ত compatible বেশিরভাগ লিনাক্স বিতরণও দৃ as়ভাবে জানায় যে তারা কোনও ম্যালওয়ার বিতরণ করে না।

আপনার প্রয়োজনীয় কিছু যদি আপনার বিতরণের ডিফল্ট প্যাকেজ রেপোতে না পাওয়া যায় তবে আপনি অতিরিক্ত প্যাকেজ রেপগুলি (যেমন ডেবিড-ভিত্তিক ডিস্ট্রোসের লঞ্চপ্যাড) চেক করতে পারেন বা pipযেভাবেই ব্যবহার করতে পারেন । যদি পরে থাকে তবে --userসিস্টেম-ওয়াইডের পরিবর্তে আপনার ব্যবহারকারীর বাড়িতে ইনস্টল করার জন্য ব্যবহার করুন , যাতে আপনার পাইথন ইনস্টলেশন ভাঙার সম্ভাবনা কম। (স্টাফগুলির জন্য আপনার কেবল অস্থায়ী বা খুব কমই প্রয়োজন, আপনি এমনকি কোনও ভার্চুয়ালেনভ ব্যবহার করতে পারেন))


8

প্যাকেজ পরিচালকের সাথে যাওয়ার আরেকটি কারণ হ'ল আপডেটগুলি স্বয়ংক্রিয়ভাবে প্রয়োগ করা হবে যা সুরক্ষার জন্য গুরুত্বপূর্ণ is ভাবুন যে সিমের প্যাকেজ ইক্যুফ্যাক্সটি স্বয়ংক্রিয়ভাবে ইয়াম-ক্রোন-সুরক্ষার মাধ্যমে আপডেট করা হত, হ্যাকটি ঘটেনি।

আমার ব্যক্তিগত ডেভ বাক্সে আমি পাইপ ব্যবহার করি, প্রোডে আমি প্যাকেজগুলি ব্যবহার করি।


4
যা আপনি ব্যবহার করেন তা আপনার উত্পাদন সেট আপের উপরও নির্ভর করে। ভার্চুয়ালেনভগুলি কারণের জন্য উপস্থিত রয়েছে :) এছাড়াও, আপনার ডিসট্রোর উপর নির্ভর করে সুরক্ষা আপডেটগুলি পরিবর্তে পাইপের সাথে আটকে থাকার কারণ হতে পারে, যেহেতু প্যাকেজ পরিচালকরা নতুন সংস্করণ যুক্ত করতে ধীর হতে পারে।
এডওয়ার্ড মিনিক্স

7

আমরা যদি লিখছি যে কোডটিতে আপনি পাইথন প্যাকেজ ইনস্টল করার কথা বলছেন, পাইপটি ব্যবহার করুন।

আপনি যে প্রতিটি প্রকল্পে কাজ করছেন তার জন্য একটি ভার্চুয়াল পরিবেশ তৈরি করুন এবং তারপরে কেবল সেই প্রকল্পের প্রয়োজনীয় জিনিসগুলি ইনস্টল করতে পাইপ ব্যবহার করুন। এইভাবে, আপনি সমস্ত লাইব্রেরিগুলি একটি সামঞ্জস্যপূর্ণ উপায়ে ব্যবহার করুন এবং সেগুলি রয়েছে এবং আপনার প্যাকেজ ম্যানেজারের মাধ্যমে আপনি যে কোনও কিছু ইনস্টল করেন তাতে হস্তক্ষেপ করবেন না।

আপনি যদি কোনও অজগর কোড প্রকাশ করার পরিকল্পনা করছেন, সাধারণত, আপনি একটি setup.pyবা requirements.txtআপনার প্রকল্পে যুক্ত করবেন, যা পাইপকে তার সমস্ত নির্ভরতা স্বয়ংক্রিয়ভাবে পাওয়ার অনুমতি দেবে। আপনাকে এই প্রকল্পের জন্য একটি ভার্চুয়াল পরিবেশ সহজেই তৈরি করতে বা পুনরায় তৈরি করার অনুমতি দিচ্ছে।


1

সারাংশ

আপনি যে মডিউলগুলি নিয়ে কাজ করছেন সেখানে তিনটি সাধারণ বিভাগ রয়েছে:

  1. ওএস প্যাকেজ সিস্টেম সহ সমস্ত ব্যবহারকারীর জন্য ইনস্টল করা সমর্থনকারী প্রোগ্রামগুলি। (এটিতে পাইথনে প্রোগ্রামিং করা লোকদের দ্বারা ব্যবহৃত সরঞ্জাম এবং গ্রন্থাগারগুলিও অন্তর্ভুক্ত থাকতে পারে; নীচে দেখুন)) এর জন্য আপনি ওএস প্যাকেজগুলি ব্যবহার করতে পারেন pipযেখানে প্রয়োজন এবং সিস্টেম ডিরেক্টরিতে যেখানে প্রয়োজন সেখানে ইনস্টল করেন।
  2. কোনও বিশেষ ব্যবহারকারীর দ্বারা কেবল তার নিজের ব্যবহারের জন্য এবং সেইসাথে পাইথনের "ডে-টু-ডে" ব্যবহারের নির্দিষ্ট দিকগুলির জন্য স্ক্রিপ্টিং ভাষা হিসাবে এটি সমর্থনকারী প্রোগ্রামগুলি নির্দিষ্ট করে। এগুলির জন্য তিনি pip --userসম্ভবত পাইএনভ বা পাইথনজ এবং অনুরূপ সরঞ্জাম এবং কৌশলগুলি ব্যবহার করেন।
  3. যারা নির্দিষ্ট অ্যাপ্লিকেশনটির বিকাশ এবং ব্যবহারকে সমর্থন করছেন। এগুলির জন্য আপনি virtualenv(বা অনুরূপ কোনও সরঞ্জাম) ব্যবহার করেন।

এখানে প্রতিটি স্তর পূর্বের স্তর থেকেও সমর্থন পাচ্ছে। উদাহরণস্বরূপ, আমাদের ব্যবহারকারী (2) ওএস প্যাকেজগুলির মাধ্যমে ইনস্টল করা পাইথন ইন্টারপ্রেটারের উপর নির্ভর করতে পারে।

আরও কিছুটা বিশদে এটিতে যাওয়া:

সিস্টেম প্রোগ্রাম এবং প্যাকেজগুলি

পাইথনে লেখা প্রোগ্রামগুলি যে আপনি "সবেমাত্র চালাতে" চান তা সহজ: কেবল ওএস ইনস্টল সরঞ্জাম ব্যবহার করুন এবং তাদের যা প্রয়োজন প্রয়োজন তা আনতে দিন; এটি পাইথনবিহীন প্রোগ্রাম থেকে আলাদা নয়। এটি পাইথন সরঞ্জাম / গ্রন্থাগারগুলি আনতে পারে (যেমন পাইথন ইন্টারপ্রেটার নিজেই!) আপনার মেশিনে থাকা ব্যবহারকারীরা নির্ভর করতে শুরু করতে পারেন; এটি এত দিন সমস্যা হয় না যতক্ষণ না তারা নির্ভরতা বোঝে এবং, আদর্শভাবে, হোস্টগুলিতে এটি পরিচালনা করার বিকল্প উপায়গুলি জানেন যা এই নির্ভরতাগুলি সরবরাহ করে না।

একটি সাধারণ এবং এই ধরনের একটি নির্ভরতা সহজ উদাহরণে আমার ব্যক্তিগত স্ক্রিপ্ট কিছু হয় ~/.local/bin/যে শুরু #!/usr/bin/env python। এগুলি সূক্ষ্মভাবে কাজ করবে (যতক্ষণ না তারা পাইথন 2 এর অধীনে চলেছে) আরএইচ / সেন্টোস 7 এ এবং বেশিরভাগ (তবে সমস্ত নয়) উবুন্টু ইনস্টল করে; এগুলি কোনও বেসিক ডেবিয়ান ইনস্টলের অধীনে বা উইন্ডোতে হবে না। আমি ওএস প্যাকেজগুলির উপর নির্ভরশীলতার পথে আমার ব্যক্তিগত পরিবেশকে অপছন্দ করি (আমি বিভিন্ন ওএসের সংখ্যায় কাজ করি), এর মতো কিছু আমি মোটামুটি গ্রহণযোগ্য মনে করি; বিরল হোস্টগুলিতে আমার ব্যাকআপ পরিকল্পনাটি নেই যে সিস্টেম পাইথন নেই এবং এটি পেতে পারে না নীচে বর্ণিত হিসাবে একটি ব্যবহারকারী সিস্টেমের সাথে যেতে হবে।

সিস্টেম অজগর দোভাষী ব্যবহারকারী ব্যক্তিরা সাধারণত সিস্টেমের উপর নির্ভরশীল pip3। আমি প্রায়শই আমার সিস্টেমের নির্ভরতার উপর লাইনটি আঁকি সেই বিষয়ে; virtualenvসামনে থেকে সবকিছু আমি নিজের সাথে ডিল করি। (উদাহরণস্বরূপ, আমার স্ট্যান্ডার্ড অ্যাক্টিভেট স্ক্রিপ্টটি যে কোনও পথে pip3বা pipযা আছে তার উপর নির্ভর করে তবে virtualenvএটি তৈরি করছে ভার্চুয়াল পরিবেশ বুটস্ট্র্যাপ করার জন্য নিজস্ব কপিটি ডাউনলোড করে ।

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

ব্যবহারকারী "দিন-দিন" প্রোগ্রাম এবং প্যাকেজগুলি

ব্যবহারকারীরা পাইথন লাইব্রেরী বা প্রোগ্রাম যা একটি ভার্চুয়াল পরিবেশে ভাল মাপসই করা হবে না, কারণ তারা সাহায্য করতে চেয়েছিলাম করছি প্রথম স্থানে ভার্চুয়াল পরিবেশে (যেমন, তৈরি হতে পারে virtualenvwrapper ) অথবা তারা জিনিষ আপনি সাধারণত কমান্ড লাইন এমনকি যখন থেকে ব্যবহার পাইথন নন কাজ করে এগুলির সিস্টেম সংস্করণ ইনস্টল করার ক্ষমতা তাদের মধ্যে থাকলেও তারা তাদের নিজস্ব ইনস্টল করার ক্ষেত্রে আরও স্বাচ্ছন্দ্য বোধ করতে পারে (উদাহরণস্বরূপ, কারণ তারা সরঞ্জামটির সর্বশেষতম সংস্করণ এবং এর নির্ভরতা ব্যবহার করতে চায়)।

সাধারণত pip --userলোকেরা এটির জন্য কী ব্যবহার করবে, যদিও নির্দিষ্ট নির্ভরতা যেমন পাইথন ইন্টারপ্রেটার নিজেই এর চেয়ে কিছুটা বেশি প্রয়োজন। পাইয়ানভ এবং পাইথনজ ব্যক্তিগত দোভাষী তৈরি করতে ( ~/.local/binডিফল্ট দোভাষী বা অন্যথায় ইনস্টলড থাকা সত্ত্বেও ) দরকারী এবং দেব গ্রন্থাগারগুলি যদি উপলব্ধ থাকে তবে অবশ্যই সর্বদা উত্স থেকে "হাতে" তৈরি করা যায়।

আমি এখানে বেয়ার ন্যূনতম সেটগুলি ইনস্টল করে রাখার চেষ্টা করি: ভার্চুয়ালেনভ্রাপার (কারণ আমি এটি ক্রমাগত ব্যবহার করি) এবং সম্ভবত পাইপের সর্বশেষতম সংস্করণ। আমি অনেক হোস্ট জুড়ে ব্যবহার করার জন্য লিখি ব্যক্তিগত স্ক্রিপ্টগুলির জন্য আমি স্ট্যান্ডার্ড লাইব্রেরির বাইরে বা পাইথন 3 এ নির্ভরতা এড়াতে চেষ্টা করি। (যদিও আমরা এই ব্যক্তিগত স্ক্রিপ্টগুলি আরও বেশি করে পাইথনে স্থানান্তরিত করতে দেখি আমি কতক্ষণ তা সহ্য করতে পারি))

অ্যাপ্লিকেশন বিকাশ এবং রানটাইম পরিবেশ পৃথক করুন

এটি হ'ল স্বাভাবিক ভার্চুয়ালেনভ জিনিস। বিকাশের জন্য আপনি প্রায় সর্বদা ভার্চুয়ালেনভ ব্যবহার করা উচিত তা নিশ্চিত করতে আপনি সিস্টেমের নির্ভরতা ব্যবহার করছেন না, বা প্রায়শই একাধিক পাইথন সংস্করণের বিপরীতে পরীক্ষা করতে পারেন।

এই ভার্চুয়াল পরিবেশগুলি যেখানে আপনি আপনার ব্যবহারকারীর পরিবেশকে দূষিত করা এড়াতে চান সেখানে প্রচুর নির্ভরতা সহ অ্যাপ্লিকেশনগুলির জন্যও ভাল। উদাহরণস্বরূপ আমি সাধারণত জুপিটার নোটবুকগুলি চালানোর জন্য একটি ভার্চুয়ালেনভ সেট করি এবং এর মতো।

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