পাইথন সেটআপ.পি বিকাশ বনাম ইনস্টল করুন


336

Setup.py দুই অপশন developএবং installআমাকে বিভ্রান্তিকর। এই সাইট অনুসারে , ব্যবহার developকরে সাইট-প্যাকেজ ডিরেক্টরিতে একটি বিশেষ লিঙ্ক তৈরি হয়।

লোকেরা পরামর্শ দিয়েছে যে আমি python setup.py installএকটি নতুন ইনস্টলেশনের জন্য ব্যবহার করব এবং python setup.py developসেটআপ ফাইলটিতে কোনও পরিবর্তন করার পরে।

এই আদেশগুলি ব্যবহারের জন্য কি কেউ কিছু আলোকপাত করতে পারে?

উত্তর:


468

python setup.py install আপনি নিজেরাই বিকাশ / পরিবর্তন / ডিবাগ করতে যাচ্ছেন না এমন প্যাকেজগুলি (সাধারণত তৃতীয় পক্ষ) ইনস্টল করতে ব্যবহৃত হয়।

আপনার নিজের কাপড় জন্য, আপনি প্রথমে আপনার প্যাকেজটি ইনস্টল এবং তারপর ঘন ঘন সম্পাদন করা কোডে সক্ষম হতে চান ছাড়া হচ্ছে প্যাকেজ প্রত্যেক সময় পুনরায় ইনস্টল - এবং যে ঠিক কি python setup.py developকরে: এটা প্যাকেজ (সাধারণত মাত্র একটি উৎস ফোল্ডার) ইনস্টল করা এমন একটি উপায়ে যা আপনাকে ভার্চুয়াল) পরিবেশে ইনস্টল করার পরে আপনার কোডটি সুবিধামত সম্পাদনা করতে এবং পরিবর্তনগুলি অবিলম্বে কার্যকর করতে সহায়তা করে effect

মনে রাখবেন যে প্যাকেজ pip install .ইনস্টল করার জন্য (ইনস্টল) এবং pip install -e .(বিকাশকারী ইনস্টল) ব্যবহার করার পরামর্শ দেওয়া হয়েছে , যেমন setup.pyসরাসরি অনুরোধ করা অনেকগুলি নির্ভরতার জন্য যেমন ভুল কাজ করবে যেমন টান প্রিরিলেস এবং বেমানান প্যাকেজ সংস্করণগুলি, বা প্যাকেজটি আনইনস্টল করতে শক্ত করে তোলে pip


81
এরিক ঠিক বলেছেন। এটি জানতেও দরকারী যে এটি যখন আপনার চারপাশে হ্যাকিংয়ের কাজ শেষ করে তখন setup.py developএকটি --uninstallবিকল্পের সাথে আসে ।
ফিলাদডাম

5
এখানে সর্বশেষ চিন্তাভাবনাটি হ'ল setup.py developপাইথন প্যাকেজটিতে হ্যাক করার অপর বিকল্পটি হ'ল প্যাকেজটি সঠিকভাবে সমাধান করার জন্য "সরল (তবে স্পষ্টতই) পাথ সংশোধন" ব্যবহার করা কেনেথ
রিটজ

4
python setup.py developস্থানীয় উন্নয়নের জন্য সিলোমিটার স্থাপনের চেষ্টা করে আমি সমস্যায় পড়েছি । এর মাধ্যমে ক্রপpip install -e PATH হওয়া সমস্যাগুলিeasy_install এড়াতে আমি (একটি ভার্চুয়ালেনভের মধ্যে) ব্যবহার করে শেষ করেছি ।
জো

1
এই বিষয়টি নিশ্চিত কিনা তা নিশ্চিত নয়, তবে আমি যদি অজগর 3 ইত্যাদি ব্যবহার করি তবে কি python setup.py developআলাদাভাবে চলতে হবে ?
চার্লি পার্কার

1
এটি পাইথন 3 এর সাথে কাজ করে তবে আপনার যে বর্তমান পাইপ ইনস্টলেশন থাকতে পারে তা মুছে ফেলতে ভুলবেন না কারণ তারা একসাথে সংঘর্ষ করবে (এই মুহুর্তে আমার সাথে এটি ঘটেছিল)।
লোও জার্মান

124

ডকুমেন্টেশন থেকে । developএই প্যাকেজটি ইনস্টল করতে হবে কিন্তু এটি একটি তৈরি করবে .egg-linkপ্রকল্পের সোর্স কোড নির্দেশিকাতে স্থাপনার ডিরেক্টরি ফিরে।

সুতরাং এটি ইনস্টলের মতো তবে এতে অনুলিপি না করে site-packagesএটি একটি প্রতীকী লিঙ্ক যুক্ত করে ( .egg-linkমাল্টিপ্লাটফর্ম প্রতীকী লিঙ্ক হিসাবে কাজ করে)।

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


24

developপদ্ধতিটি ব্যবহার করার সময় লোকেদের যে জিনিস দরকারী হতে পারে তা হ'ল --userসুডো ছাড়াই ইনস্টল করার বিকল্প। উদা:

python setup.py develop --user

পরিবর্তে

sudo python setup.py develop

11
IIUC setup.py developআপনার সিস্টেমে কখনও হওয়া উচিত নয় , এটি কেবল একটি ভার্চুয়ালেনভের মধ্যে অর্থবোধ করে।
ডিভাইডবাইজারো

2
@ ডিভিডিবিজারো আপনার কি বোঝানো উচিত যে python setup.py develop --userআমি যদি সঠিকভাবে বুঝতে পারি তবে সর্বদা ব্যবহার করা উচিত ? তা ছাড়া, আপনি কি দয়া করে আমাকে বলতে পারবেন যে প্যাকেজটি ব্যবহার করে ইনস্টল করা হয়েছে python setup.py develop --user? ধন্যবাদ!
রোবট এআই

2
আমি মনে করি যে --userআপনার হোম অ্যাকাউন্টে ডিরেক্টরিটি ইনস্টল করবে এবং এটি আপনার সিস্টেমে অন্য ব্যবহারকারীদের প্রভাবিত করবে না। developআসলে সবকিছু কপি পরিবর্তে আপনার প্রকল্পের সোর্স ডিরেক্টরিতে লিঙ্ক করতে হবে। develop --userঠিক আছে, এবং developএকটি ভার্চুয়ালেনভ মধ্যে করা উচিত। কেবল developপ্রকৃত সিস্টেমে অদ্ভুত, কারণ আপনার অন্যান্য ব্যবহারকারীরা এমন কিছু ব্যবহার করতে পারেন যা আপনার প্রকল্পের উত্স কোডের ব্যক্তিগত অনুলিপিতে প্রকল্পটিকে নির্দেশ করে।
ডিভাইডবাইজারো

4
অনেক (সর্বাধিক?) লোক মাল্টি-ইউজার সিস্টেমে চলছে না যদিও
প্যাটস্টু

1
@ বোটকোডার, ম্যাক এবং লিনাক্স (এবং উইন্ডোজ) হতে পারে একাধিক ব্যবহারকারী সক্ষম সিস্টেম, তবে সম্ভবত বিকাশকারীই তার ডেস্কটপের একমাত্র (বাস্তব) ব্যবহারকারী অ্যাকাউন্ট এবং আমি বিশ্বাস করি এটিই পেস্টউ মানে।
MestreLion
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.