"পাইপ ইনস্টল - অযোগ্য। /" বনাম "পাইথন সেটআপ.পি ডেভেলপ করুন"


177

এর মধ্যে কোনও উল্লেখযোগ্য পার্থক্য রয়েছে কি?

pip install -e /path/to/mypackage

এবং সেটআপলগুলি ভেরিয়েন্ট?

python /path/to/mypackage/setup.py develop

1
এটি উন্নয়নের মোড বর্ণনা করে এমন একটি আপডেট হওয়া লিঙ্ক হিসাবে উপস্থিত হয়েছে: setuptools.readthedocs.io/en/latest/…
পলআর

আপনি যদি আনইনস্টল করতে আগ্রহী হন (বিকাশ / সম্পাদনাযোগ্য মোডে প্যাকেজগুলি) এই প্রশ্নের চেষ্টা করুন: স্ট্যাকওভারফ্লো
চার্লি পার্কার

উত্তর:


130

setup.pyসরাসরি কল করা এড়াতে চেষ্টা করুন , এটি আপনার প্যাকেজটি ইনস্টল করেছেন এমন পাইপটি সঠিকভাবে বলবে না।

সহ pip install -e:

স্থানীয় প্রকল্পগুলির জন্য, "সোমারপোজেক্ট.ইজিগ-ইনফরমেশন" ডিরেক্টরিটি প্রকল্পের পথের তুলনায় তৈরি করা হয়েছে। এটি কেবলমাত্র ব্যবহারের ক্ষেত্রে একটি সুবিধা setup.py develop, যা বর্তমানের কার্যক্ষম ডিরেক্টরিটিকে সরাসরি সম্পর্কিত "ডিম-তথ্য" তৈরি করে।

আরও: ডকস

এছাড়াও setuptools 'পড়া ডক্স


পরিবর্তনটি কার্যকর হওয়ার জন্য ব্যবহারকারীকে ফাইল পরিবর্তন করার পরে কি আবার 'পাইথন সেটআপ.পিপি এসডিস্ট' চালাতে হবে?
ভেরিয়েবল

তবে আপনার যদি 'সেট_ট্রেস' দিয়ে ডিফল্ট করতে হয় (সেটআপ.পি ফাইলটি নিজেই) তবে 'পাইথন সেটআপ.পি ডেভেলপ' এটি সম্ভব করে তোলে
মিরেক

দ্বিতীয় ইউআরএল ভাঙা।
খারাপ_কোডার

দুজনেই আমার পক্ষে কাজ করে।
নভেম্বর

76

আরও একটি পার্থক্য: pip install -eচাকা python setup.py develop
ব্যবহার করে যখন এটি ব্যবহার করে না।

সহ install, আপনি ব্যবহার করে একই আচরণ অর্জন করতে পারে
pip install -e /path/to/package --no-use-wheel

চাকার উপর আরও তথ্য: পাইথন চাকা


18
উল্লেখ্য, অনুযায়ী pip.pypa.io/en/stable/reference/pip_install , --no-use-wheelঅননুমোদিত পক্ষে--no-binary :all:
Nzbuu

আমরা কি এসডিস্ট ব্যবহার করে উত্পাদিত প্যাকেজের জন্য পাইপ ইনস্টল -e করতে পারি?
পরিবর্তনযোগ্য

36

আরেকটি পার্থক্য হল যে পক্ষপাতী পারে pip install -eযে যদি আপনার প্রকল্পের মধ্যে নির্ভরতা আছে install_requiresমধ্যে setup.py, তারপর pip install -e .নির্ভরতা পিপ সঙ্গে, ইনস্টল করার সময় python setup.py developসঙ্গে ইনস্টল করতে পারেন easy_installযেমন উপরে উল্লিখিত 'ডিম-তথ্য':, এবং সমস্যার পুনরায় হতে পারে। সংযুক্ত ডিম শনাক্তকারীদের সাথে কাস্টম গিট ইউআরএল install-requiresব্যবহার dependency_linksকরার সময় এটি বিশেষত বিরক্তিকর হতে পারে।


1
এটি সম্পূর্ণরূপে ব্যাখ্যা করে যে আমার ব্যক্তিগত প্যাকেজটি কেন ইনস্টল হতে ব্যর্থ হয়েছিল। এটা আমার ডিপিপি সার্ভারে নেই পিপিআই ধন্যবাদ।
সিটকোট

আপনি যখন প্যাকেজটি সম্পাদনাযোগ্য হয়ে যায়, আপনি কী বোঝাতে চেয়েছিলেন যে প্যাকেজ ফাইলটিতে পরিবর্তন করার পরে ব্যবহারকারীকে আবার 'পাইথন সেটআপ.পিপি এসডিস্ট' চালাতে হবে? বা উপরের কমান্ড চালানো প্রয়োজন হয় না?
ভেরিয়েবল

@ পরিবর্তনশীল যখন আপনি এর সাথে কোনও স্থানীয় প্যাকেজ ইনস্টল করেন pip install -e ., এটি আপনার কার্যকরী অনুলিপিটি নির্দেশ করার জন্য প্রাসঙ্গিক সাইট-প্যাকেজ ডিরেক্টরিতে মূলত একটি সিএমলিংক তৈরি করে । যেহেতু কোডটি সেই কার্যকরী অনুলিপিটিতে করা হয়, তত্ক্ষণাত্ এটি "ইনস্টলড" সংস্করণে প্রতিফলিত হয়, সুতরাং আপনার যেতে যেতে ইনস্টলেশন কমান্ডগুলি পুনরায় চালানোর দরকার নেই। এটি একটি স্থাপনযোগ্য প্যাকেজ উপস্থাপন করে এমন একটি সংগ্রহস্থলের বিকাশের জন্য প্রাথমিকভাবে দরকারী, যেমন উদাহরণস্বরূপ কেবলমাত্র পরম আমদানি ইত্যাদিসহ মডিউলগুলির কিছু সংগ্রহ লিখতে পারেন
ly

0

তবুও অন্য পার্থক্য: আপনি যখন python setup.py developপ্রাক রিলিজ হিসাবে বিবেচিত কোনও সংস্করণটির জন্য দৌড়ান (সম্ভবত আপনি যখন রিলিজটি পরীক্ষা না করে গিট ক্লোন থেকে চালাচ্ছেন) তখন আপনি আপনার নির্ভরতার প্রাক-প্রকাশের ইনস্টলেশন সক্ষম করবেন । অন্যদিকে, যদি আপনি এই প্রাক-প্রকাশনা চান তবে আপনার সাথে স্পষ্টভাবে pip install --editableপাস করতে হবে --pre

( দুর্ঘটনাক্রমে ব্যবহৃত প্রাক-রিলিজ সহ সিআই লগ দেখুন এবং এটি এখানে একটি নির্দিষ্ট বিল্ডের সাথে তুলনা করুন ))

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