python - কেন easy_install উপর পিপ ব্যবহার?




pip setuptools (6)

একটি tweet :

সহজবোধ্য ব্যবহার করবেন না, যতক্ষণ না আপনি মুখের মধ্যে নিজেকে ছিঁড়ে ফেলতে চান। পিপ ব্যবহার করুন।

কেন easy_install উপর পিপ ব্যবহার? ত্রুটি কি পিপিপিআই এবং প্যাকেজ লেখকদের বেশিরভাগ ক্ষেত্রেই মিথ্যা নয়? যদি কোন লেখক পিপপিআইতে বিরাম উৎস টারববল আপলোড করে (উদাহরণস্বরূপ: ফাইলগুলি অনুপস্থিত, কোন setup.py), তখন উভয় পপ এবং easy_install ব্যর্থ হবে। অঙ্গরাগ পার্থক্য ছাড়া, পাইথন মানুষ কেন (উপরের টুইটের মতো) সহজে ইনস্টল করার জন্য পাইপের পক্ষে জোরালো সমর্থন করে?

(আসুন আমরা অনুমান করি যে আমরা Distribute প্যাকেজ থেকে সহজ_install সম্পর্কে কথা বলছি, এটি সম্প্রদায় দ্বারা পরিচালিত হয়)


Fuzzyman এর উত্তরের একটি সংযোজন হিসাবে:

পাইপ বাইনারি প্যাকেজ ইনস্টল করবে না এবং উইন্ডোজ এ ভালভাবে পরীক্ষা করা হবে না।

উইন্ডোজ ডিফল্ট পাইপ দ্বারা কম্পাইলারের সাথে আসে না তাই প্রায়ই সেখানে ব্যবহার করা যাবে না। easy_install উইন্ডোজের জন্য বাইনারি প্যাকেজ ইনস্টল করতে পারেন।

এখানে উইন্ডোজ একটি কৌশল:

  • বাইনারি প্যাকেজগুলি এড়াতে বাইনারি প্যাকেজ ইনস্টল করতে আপনি easy_install <package> ব্যবহার করতে পারেন

  • আপনি পাইপ pip uninstall <package> ব্যবহার করতে পারেন এমনকি যদি আপনি easy_install ব্যবহার করেন।

এটি শুধু একটি কাজ-চারপাশে যা উইন্ডোগুলিতে আমার জন্য কাজ করে। প্রকৃতপক্ষে আমি কোন বাইনারি জড়িত থাকে যদি আমি সবসময় পিপ ব্যবহার।

বর্তমান পাইপ ডোকু দেখুন: http://www.pip-installer.org/en/latest/other-tools.html#pip-compared-to-easy-install -to-easy -install

আমি মেইলিং তালিকা জিজ্ঞাসা করবে কি জন্য পরিকল্পনা করা হয়।

এখানে সর্বশেষ আপডেট:

বাইনারি ইনস্টল করার নতুন সমর্থিত উপায় wheel হতে যাচ্ছে! এটা এখনও মান, কিন্তু প্রায় হয় না। বর্তমান সংস্করণটি এখনও একটি আলফা: 1.0.0a1

https://pypi.python.org/pypi/wheel

http://wheel.readthedocs.org/en/latest/

আমি ডিম পরিবর্তে wheel ব্যবহার করে PySide জন্য একটি ওএস এক্স ইনস্টলার তৈরি করে wheel পরীক্ষা করব। ফিরে পাবেন এবং এই সম্পর্কে রিপোর্ট।

চিয়ার্স - ক্রিস

একটি দ্রুত আপডেট:

wheel রূপান্তর প্রায় শেষ হয়। সর্বাধিক প্যাকেজ wheel সমর্থন করা হয়।

আমি PySide জন্য চাকা তৈরি করার প্রতিশ্রুতি দিয়েছিলাম, এবং আমি গত গ্রীষ্মে এটি করেছি। মহান কাজ করে!

HINT: কয়েকটি ডেভেলপারগুলি চাকা ফর্ম্যাটটিকে সমর্থন করার জন্য এতদূর ব্যর্থ হয়েছে, কেবলমাত্র distutils দ্বারা setuptools প্রতিস্থাপন করতে ভুলবেন না। প্রায়শই, setup.py এই একক শব্দটি প্রতিস্থাপন করে এই প্যাকেজগুলি রূপান্তর করা সহজ।


আপডেট: কিছু চিন্তা হিসাবে setuptools বিপরীত হিসাবে distribute শোষিত হয়েছে। setuptools সর্বশেষ distutils পরিবর্তন এবং চাকা বিন্যাস সঙ্গে আপ টু ডেট। সুতরাং, easy_install এবং pip সমান পায়ে এখন কম বা কম।

উত্স: absorbed


ইয়ান বিটিং এর নিজস্ব প্রবর্তনের পিপ থেকে :

পাইপ মূলত নিম্নলিখিত উপায়ে easy_install উন্নত করতে লেখা হয়েছিল

  • সমস্ত প্যাকেজ ইনস্টলেশন আগে ডাউনলোড করা হয়। আংশিকভাবে সম্পন্ন ইনস্টলেশন ফলে হিসাবে ঘটবে না।
  • যত্ন কনসোল দরকারী আউটপুট উপস্থাপন করা হয়।
  • কর্মের জন্য কারণ ট্র্যাক রাখা হয়। উদাহরণস্বরূপ, যদি একটি প্যাকেজ ইনস্টল করা হয়, তবে পিপি কেন প্যাকেজটি প্রয়োজন তা ধরে রাখে।
  • ত্রুটি বার্তা দরকারী হতে হবে।
  • কোডটি অপেক্ষাকৃত সংক্ষিপ্ত এবং একত্রিত, এটি প্রোগ্রাম্যাটিকভাবে ব্যবহার করা সহজ করে তোলে।
  • প্যাকেজ ডিম আর্কাইভ হিসাবে ইনস্টল করতে হবে না, তারা ফ্ল্যাট ইনস্টল করা যেতে পারে (ডিম মেটাডাটা পালন করার সময়)।
  • অন্যান্য সংস্করণ নিয়ন্ত্রণ সিস্টেমের জন্য স্থানীয় সমর্থন (গিট, Mercurial এবং বাজার)
  • প্যাকেজ আনইনস্টলেশন।
  • প্রয়োজনীয় স্থির সেট সংজ্ঞায়িত করা সহজ এবং প্যাকেজ একটি সেট পুনঃপ্রণালী সহজ।

এখানে বেশিরভাগ উত্তর 2015 এর জন্য তারিখের বাইরে রয়েছে (যদিও ড্যানিয়েল রোজমানের প্রাথমিকভাবে গ্রহণযোগ্য নয়)। এখানে বর্তমান অবস্থা:

  • বাইনারি প্যাকেজগুলি এখন চাকার (। .whl ফাইল) হিসাবে বিতরণ করা হয় - শুধু .whl নয়, তবে উইন্ডোজের জন্য ক্রিসটোফ গোলেকের এক্সটেনশন প্যাকেজগুলির মতো তৃতীয় পক্ষের সংগ্রহস্থলগুলিতে। pip চাকা হ্যান্ডেল করতে পারেন; easy_install করতে পারেন না।
  • ভার্চুয়াল এনভায়রনমেন্টগুলি (যা 3.4 এর সাথে অন্তর্নির্মিত হয়, অথবা ভার্চুয়ালেনভ সহ 2.6 + / 3.1 + এ যোগ করা যেতে পারে) খুব গুরুত্বপূর্ণ এবং বিশিষ্ট হাতিয়ার (এবং সরকারী ডক্সগুলিতে সুপারিশকৃত) হয়ে উঠেছে; তারা বাক্সের easy_install আউট অন্তর্ভুক্ত, কিন্তু easy_install সঙ্গে সঠিকভাবে কাজ না।
  • easy_install অন্তর্ভুক্ত যে distribute প্যাকেজ আর রক্ষণাবেক্ষণ করা হয়। setuptools উপর তার উন্নতি setuptools মধ্যে ফিরে মার্জ পেয়েছিলাম। distribute ইনস্টল করার চেষ্টা করে পরিবর্তে setuptools ইনস্টল করা হবে।
  • easy_install নিজেই শুধুমাত্র easy_install রক্ষণাবেক্ষণ হয়।
  • কোনও ক্ষেত্রে যেখানে easy_install একটি আনপ্যাকড উৎসের গাছ থেকে সহজ_ইনস্টল-ইনস্টল করার জন্য ডিভিসিএস রেপো, ইত্যাদি-থেকে দীর্ঘ-সর্বস্বান্ত হয়; আপনি pip install . করতে পারেন pip install . , pip install git+https://
  • পাইপটি পাইথন 2.7 এবং 3.4+ প্যাকেজগুলি python.org থেকে আসে এবং আপনি যদি উৎস থেকে তৈরি করেন তবে পিআইপি বুটস্ট্র্যাপ ডিফল্টরূপে অন্তর্ভুক্ত করা হয়।
  • প্যাকেজগুলি ইনস্টল, ব্যবহার, এবং নির্মাণের জন্য নথির বিভিন্ন অসম্পূর্ণ বিট Python প্যাকেজিং ব্যবহারকারী নির্দেশিকা দ্বারা প্রতিস্থাপিত হয়েছে। পাইথন মডিউল ইনস্টল করার জন্য পাইথনের নিজস্ব ডকুমেন্টেশন এখন এই ব্যবহারকারীর নির্দেশিকাটিকে বিলম্বিত করে এবং "পছন্দের ইনস্টলার প্রোগ্রাম" হিসাবে স্পষ্টভাবে পিপকে কল করে।
  • অন্যান্য নতুন বৈশিষ্ট্যগুলি বছরগুলিতে easy_install যোগ করা হয়েছে যা easy_install যাবে না। উদাহরণস্বরূপ, pip একটি প্রয়োজনীয় ফাইল তৈরি করে আপনার সাইট-প্যাকেজগুলি ক্লোন করা সহজ করে এবং তারপর প্রতিটি পাশে একক কমান্ড দিয়ে এটি ইনস্টল করে। অথবা অভ্যন্তরীণ উন্নয়নের জন্য ব্যবহারের জন্য আপনার প্রয়োজনীয় ফাইল স্থানীয় রেপোতে রূপান্তর করতে। এবং তাই।

২015 সালে easy_install ব্যবহার করার জন্য আমি জানি যে একমাত্র ভাল কারণ হল অ্যাপল এর প্রাক-ইনস্টল করা পাইথন সংস্করণগুলি ওএস এক্স 10.5-10.8 সহ ব্যবহার করার বিশেষ কেস। 10.5 সাল থেকে, অ্যাপলটি easy_install অন্তর্ভুক্ত easy_install , কিন্তু 10.10 এর মধ্যে তারা এখনও easy_install অন্তর্ভুক্ত করে না। 10.9+ এর সাথে, এখনও আপনি get -pip.py ব্যবহার get-pip.py , কিন্তু 10.5-10.8 এর জন্য এটির কিছু সমস্যা রয়েছে, তাই সহজে sudo easy_install pip সহজ। (সাধারণভাবে, easy_install pip একটি খারাপ ধারণা; এটি শুধুমাত্র OS X 10.5-10.8 এর জন্য যা আপনি এটি করতে চান।) এছাড়াও, 10.5-10.8 এ এমন একটি readline অন্তর্ভুক্ত করে যা easy_install জানেন যে কিভাবে easy_install করা যায় তবে easy_install না হয়, তাই আপনি এটি আপগ্রেড করতে চান তাহলে sudo easy_install readline করতে চান।


পাইপ বাইনারি প্যাকেজ ইনস্টল করবে না এবং উইন্ডোজ এ ভালভাবে পরীক্ষা করা হবে না।

উইন্ডোজ ডিফল্ট পাইপ দ্বারা কম্পাইলারের সাথে আসে না তাই প্রায়ই সেখানে ব্যবহার করা যাবে না । easy_install উইন্ডোজের জন্য বাইনারি প্যাকেজ ইনস্টল করতে পারেন।


প্রয়োজনীয় ফাইল।

আন্তরিকভাবে, আমি এই ভার্চুয়ালেনভ সঙ্গে প্রতিদিন ব্যবহার করে।

দ্রুত দায়িত্ব ব্যবস্থাপনা টিউটোরিয়াল, ফোকাস

প্রয়োজনীয়তা ফাইলগুলি আপনাকে পিপের মাধ্যমে ইনস্টল করা সমস্ত প্যাকেজের একটি স্ন্যাপশট তৈরি করতে দেয়। ভার্চুয়ালেন পরিবেশে প্যাকেজগুলি এনক্যাপুলুলেটিং করে, আপনার কোডবেসগুলি প্যাকেজের একটি খুব নির্দিষ্ট সেট বন্ধ করে এবং অন্যদের সাথে সেই কোডबेस ভাগ করে নিতে পারে।

Heroku এর ডকুমেন্টেশন থেকে https://devcenter.heroku.com/articles/python

আপনি একটি ভার্চুয়াল পরিবেশ তৈরি করেন এবং এটি ব্যবহার করতে আপনার শেল সেট করুন। (bash / * nix নির্দেশাবলী)

virtualenv env
source env/bin/activate

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

pip install flask

এখন আপনি প্যাকেজ ইনস্টল করা সম্পর্কে তথ্য ডাম্প করতে পারেন

pip freeze > requirements.txt

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

pip install -r requirements.txt

আপনি এই মত tedium স্বয়ংক্রিয় করতে পারেন যে কোনো সময় সন্ত্রস্ত।





pypi