एक मैक पर अजगर मॉड्यूल स्थापित करने के लिए सबसे संगत तरीका क्या है?


125

मैं अजगर सीखना और उससे प्यार करना शुरू कर रहा हूं। मैं एक मैक पर मुख्य रूप से लिनक्स पर काम करता हूं। मैं पा रहा हूँ कि लिनक्स पर (उबंटू 9.04 ज्यादातर) जब मैं ath-get का उपयोग करके एक अजगर मॉड्यूल स्थापित करता हूं तो यह ठीक काम करता है। मैं इसे बिना किसी परेशानी के आयात कर सकता हूं।

मैक पर, मुझे सभी यूनिक्स सामान को स्थापित करने के लिए मैकपोर्ट्स का उपयोग करने के लिए उपयोग किया जाता है। हालाँकि, मुझे लग रहा है कि मेरे द्वारा स्थापित अधिकांश अजगर मॉड्यूल अजगर द्वारा नहीं देखे जा रहे हैं। मैंने कुछ समय PATH सेटिंग्स के साथ खेलने और python_select का उपयोग करने में बिताया है। वास्तव में कुछ भी काम नहीं किया है और इस बिंदु पर मैं वास्तव में समझ नहीं रहा हूं, इसके बजाय मैं बस चारों ओर से घेर रहा हूं।

मुझे यह आभास होता है कि मैकपोर्ट्स को अजगर मॉड्यूल के प्रबंधन के लिए सार्वभौमिक रूप से प्यार नहीं है। मैं अधिक "स्वीकृत" (यदि यह सही शब्द है) दृष्टिकोण का उपयोग करके नए सिरे से शुरू करना चाहता हूं।

इसलिए, मैं सोच रहा था कि मैक पायथन डेवलपर्स अपने मॉड्यूल का प्रबंधन करने के लिए किस विधि का उपयोग करता है?

बोनस प्रश्न:

क्या आप Apple के अजगर, या कुछ अन्य संस्करण का उपयोग करते हैं? क्या आप स्रोत से सब कुछ संकलित करते हैं या क्या कोई पैकेज मैनर है जो अच्छी तरह से काम करता है (फिंक?)।


कुछ समय पहले Ars Technica में Mac OS X के लिए PyQt अनुप्रयोगों की पैकेजिंग पर एक अच्छा लेख था: arstechnica.com/open-source/guides/2009/03/…
Todd Gamblin

7
Mac पर Mac के लिए MacPorts परिपूर्ण है। नोट: आपको अपने MacPorts Python स्थापना में स्थापित करने के लिए MacPorts के माध्यम से पायथन पैकेज स्थापित करने की आवश्यकता है। आप MacPorts का उपयोग किए बिना पैकेज भी स्थापित कर सकते हैं; हालाँकि, आपको python_select BEFORE द्वारा पैकेज को स्थापित करने के माध्यम से अजगर के उस संस्करण को डिफ़ॉल्ट बनाने की आवश्यकता है। यदि आप पैकेज स्थापित करते हैं और फिर python_select का उपयोग करते हैं, तो इससे कोई फर्क नहीं पड़ेगा, क्योंकि यह स्थापना के समय जो भी पायथन का डिफ़ॉल्ट संस्करण था, में स्थापित हो जाएगा।
माइकल आरोन सफ़्यान

जवाबों:


144

अजगर पैकेज को प्रबंधित करने का सबसे लोकप्रिय तरीका (यदि आप अपने सिस्टम पैकेज मैनेजर का उपयोग नहीं कर रहे हैं) सेटपूल और easy_install का उपयोग करना है। यह संभवतः आपके सिस्टम पर पहले से ही स्थापित है। इसे इस तरह उपयोग करें:

easy_install django

easy_install पायथन पैकेज इंडेक्स का उपयोग करता है जो अजगर डेवलपर्स के लिए एक अद्भुत संसाधन है। क्या पैकेज उपलब्ध हैं, यह देखने के लिए चारों ओर एक नज़र रखें।

एक बेहतर विकल्प पाइप है , जो कर्षण प्राप्त कर रहा है, क्योंकि यह easy_install से जुड़ी कई समस्याओं को ठीक करने का प्रयास करता है । पिप easy_install के रूप में एक ही पैकेज रिपॉजिटरी का उपयोग करता है, यह सिर्फ बेहतर काम करता है। इस कमांड के लिए वास्तव में easy_install का उपयोग करने की आवश्यकता केवल समय है:

easy_install pip

उसके बाद, उपयोग करें:

pip install django

कुछ बिंदु पर आप शायद virtualenv के बारे में थोड़ा सीखना चाहते हैं । यदि आप परस्पर विरोधी पैकेज आवश्यकताओं के साथ परियोजनाओं पर बहुत सारे अजगर विकास करते हैं, तो virtualenv एक देवता है। यह आपको विभिन्न पैकेजों के पूरी तरह से अलग संस्करण देने की अनुमति देगा, और आपकी आवश्यकताओं के आधार पर उनके बीच आसानी से स्विच कर सकता है।

किस अजगर का उपयोग करने के बारे में, ऐप्पल के अजगर के साथ चिपकना आपको कम से कम सिरदर्द देगा, लेकिन अगर आपको एक नए संस्करण की आवश्यकता है (तेंदुआ 2.5.1 मुझे विश्वास है), मैं macports python 2.6 के साथ जाऊंगा ।


5
मैंने हाल ही में अपनी मशीन का पुनर्निर्माण किया है और केवल होमब्रे और पीआईपी का उपयोग करने के लिए स्विच किया है, अचानक निर्माण की सभी समस्याएं जो मैं दूर जा रहा था।
ग्लोरीफिश

42

आपका प्रश्न पहले से ही तीन साल पुराना है और कुछ विवरण हैं जो अन्य उत्तरों में शामिल नहीं हैं:

ज्यादातर लोग जानते हैं कि मैं HomeBrew या MacPorts का उपयोग करता हूं , मैं MacPorts को इस बात के लिए पसंद करता हूं कि एक साफ मैक ओएस एक्स पर्यावरण और मेरे विकास सेटअप में से एक को काट दिया जाए। बस अपना / ऑप्ट फ़ोल्डर बाहर ले जाएँ और एक सामान्य उपयोगकर्ता पायथन पर्यावरण के साथ अपने संकुल का परीक्षण करें

Mac के भीतर MacPorts केवल पोर्टेबल है, लेकिन easy_install या पाइप से आप सीखेंगे कि किसी भी प्लेटफॉर्म (Win / Mac / Linux / Bsd ...) में अपने वातावरण को कैसे सेटअप करें। इसके अलावा यह हमेशा अप टू डेट और अधिक पैकेज के साथ होगा

मैंने व्यक्तिगत रूप से MacPorts को सब कुछ अपडेट रखने के लिए अपने पायथन मॉड्यूल को संभालने दिया। किसी भी अन्य उच्च स्तरीय पैकेज मैनेजर (यानी: apt-get) की तरह यह बहुत सारे द्विआधारी निर्भरता वाले मॉड्यूल के भारी उठाने के लिए बेहतर है। कोई तरीका नहीं है कि मैं अपने Qt बाइंडिंग (PySide) को easy_install या पाइप से बनाऊं। क्यूटी विशाल है और संकलन के लिए बहुत कुछ लेता है। जैसे ही आप एक अजगर पैकेज चाहते हैं जिसे गैर पायथन कार्यक्रमों द्वारा उपयोग किए जाने वाले पुस्तकालय की आवश्यकता है, easy_install या पाइप से बचने की कोशिश करें

कुछ बिंदु पर आप पाएंगे कि MacPorts के भीतर कुछ पैकेज गायब हैं। मुझे विश्वास नहीं हो रहा है कि MacPorts आपको कभी पूरा चीज़शॉप दे देगा । उदाहरण के लिए, हाल ही में मैं जरूरत अमृत मॉड्यूल, लेकिन MacPorts केवल प्रस्तावों py25-अमृत और py26-अमृत, कोई py27 संस्करण। इन मामलों में आपके पास:

पाईप -२. स्थापित - यूसर अमृत

(सुनिश्चित करें कि आप हमेशा पाइप टाइप करें- (संस्करण))

यह आपके घर डायर में एक अतिरिक्त पायथन लाइब्रेरी का निर्माण करेगा। हां, पायथन एक से अधिक लाइब्रेरी लोकेशन के साथ काम करेगा: मैकप्रॉर्ट्स द्वारा नियंत्रित एक और मैकपैर्ट्स के भीतर गायब होने वाली हर चीज के लिए एक उपयोगकर्ता स्थानीय।

अब ध्यान दें कि मैं easy_install पर पाइप का पक्ष लेता हूं। एक अच्छा कारण है कि आपको सेप्टुपूल और easy_install से बचना चाहिए। यहाँ एक अच्छी व्याख्या है और मैं उनसे दूर रहने की कोशिश करता हूँ। पाइप की एक बहुत ही उपयोगी विशेषता आपको सभी मॉड्यूल (उनके संस्करणों के साथ) की एक सूची दे रही है जिसे आपने MacPorts, easy_install और स्वयं पाइप के साथ स्थापित किया है:

पाइप- 2.7 फ्रीज

यदि आपने पहले से ही easy_install का उपयोग शुरू कर दिया है, तो चिंता न करें, पाइप पहले से ही easy_install द्वारा की गई हर चीज को पहचान सकता है और यहां तक ​​कि इसके साथ स्थापित संकुल को भी अपग्रेड कर सकता है।

यदि आप एक डेवलपर हैं तो अलग-अलग सेटअप और मॉड्यूल संस्करणों के संयोजन को नियंत्रित करने के लिए virtualenv पर नज़र रखें । अन्य उत्तर पहले से ही इसका उल्लेख करते हैं, जो अब तक उल्लेख नहीं किया गया है वह है टॉक्स मॉड्यूल, परीक्षण के लिए एक उपकरण जो आपके पैकेज को विभिन्न पायथन संस्करणों के साथ सही ढंग से स्थापित करता है।

हालाँकि, मेरे पास आमतौर पर संस्करण संघर्ष नहीं होते हैं, मुझे एक स्वच्छ वातावरण स्थापित करने और अपने पैकेज निर्भरता के बारे में स्पष्ट दृष्टिकोण प्राप्त करने के लिए वर्चुअन करना पसंद है। इस तरह मैं अपने setup.py में किसी भी निर्भरता को कभी नहीं भूल सकता

यदि आप MacPorts के लिए जाते हैं, तो ध्यान रखें कि एक ही पैकेज के कई संस्करणों को पुराने डेबियन स्टाइल की तरह नहीं चुना जाता है, अतिरिक्त python_select पैकेज के साथ (यह अभी भी संगतता के लिए है)। अब आपके पास यह चयन करने के लिए कमांड है कि किस पायथन संस्करण का उपयोग किया जाएगा (आप एप्पल स्थापित लोगों का चयन भी कर सकते हैं):

$  port select python
Available versions for python:
    none
    python25-apple
    python26-apple
    python27 (active)
    python27-apple
    python32

$ port select python python32

इसके शीर्ष पर विषाक्त जोड़ें और आपके कार्यक्रम वास्तव में पोर्टेबल होने चाहिए


30

कृपया पायथन ओएस एक्स के विकास का माहौल देखेंMacPorts का उपयोग करने का सबसे अच्छा तरीका है । MacPorts को डाउनलोड और इंस्टॉल करें, फिर टर्मिनल में निम्नलिखित कमांड टाइप करके MacPorts के माध्यम से पायथन को स्थापित करें:

sudo port python26 python_select इंस्टॉल करें
sudo port select --set python python26

या

sudo port python30 python_select इंस्टॉल करें
sudo port select --set python python30

पायथन 2.6 को स्थापित करने के लिए कमांड के पहले सेट का उपयोग करें और दूसरा सेट पायथन 3.0 को स्थापित करने के लिए। फिर उपयोग करें:

sudo port py26-packagename स्थापित करता है

या

sudo port py30-packagename स्थापित करता है

उपरोक्त आदेशों में, पैकेजनाम को पैकेज के नाम से बदलें , उदाहरण के लिए:

sudo port py26-setuptools स्थापित करें

ये आदेश दिए गए पायथन संस्करण के लिए पैकेज (और इसकी निर्भरता) को स्वचालित रूप से स्थापित करेंगे।

पायथन के लिए उपलब्ध पैकेजों की पूरी सूची के लिए, टाइप करें:

पोर्ट सूची | grep py26-

या

पोर्ट सूची | grep py30-

आप किस कमांड का उपयोग करते हैं, यह निर्भर करता है कि पायथन के किस संस्करण को आपने इंस्टॉल करना चुना है।


1
रिकॉर्ड के लिए, MacPorts के हाल के संस्करणों के sudo python_select python30साथ बदल दिया गया है sudo port select --set python python30
बेंजामिन हॉजसन

7

मैं MacPorts का उपयोग Python को स्थापित करने के लिए करता हूं और MacPorts द्वारा ट्रैक किए गए किसी भी तृतीय-पक्ष मॉड्यूल में /opt/local, और मैं किसी भी मैन्युअल रूप से इंस्टॉल किए गए मॉड्यूल (उन MacPorts रिपॉजिटरी में नहीं) को स्थापित करता हूं /usr/localऔर इससे कभी कोई समस्या नहीं हुई है। मुझे लगता है कि आप कुछ MacPorts स्क्रिप्ट और पर्यावरण चर के उपयोग के रूप में भ्रमित हो सकते हैं।

MacPorts python_selectका उपयोग पायथन के "वर्तमान" संस्करण का चयन करने के लिए किया जाता है, लेकिन इसका मॉड्यूल से कोई लेना-देना नहीं है। यह आपको MacPorts का उपयोग करके Python 2.5 और Python 2.6 दोनों को इंस्टॉल करने और इंस्टाल करने के बीच स्विच करने की अनुमति देता है।

$PATHवातावरण चर है नहीं प्रभावित कर क्या अजगर मॉड्यूल लोड किए गए हैं। $PYTHONPATHवह है जो आप ढूंढ रहे हैं। $PYTHONPATHउन निर्देशिकाओं की ओर संकेत करना चाहिए जिनमें पायथन मॉड्यूल हैं जिन्हें आप लोड करना चाहते हैं। मेरे मामले में, मेरे $PYTHONPATHचर में शामिल है /usr/local/lib/python26/site-packages। यदि आप MacPorts के पायथन का उपयोग करते हैं, तो यह आपके लिए अन्य उचित निर्देशिकाएं सेट करता है, इसलिए आपको केवल अतिरिक्त पथ जोड़ने की आवश्यकता है $PYTHONPATH। लेकिन फिर से, $PATHबिल्कुल भी उपयोग नहीं किया जाता है जब पायथन आपके द्वारा स्थापित मॉड्यूल की खोज करता है।

$PATH है , इसलिए यदि आप MacPorts 'अजगर स्थापित निष्पादनयोग्य को खोजने के लिए, प्रयोग किया जाता है, यह सुनिश्चित करने के /opt/local/binअपने में है $PATH


6

MacPorts Python की स्थापना का उपयोग करने में कुछ भी गलत नहीं है। यदि आप MacPorts से अजगर मॉड्यूल स्थापित कर रहे हैं, लेकिन फिर उन्हें नहीं देख रहे हैं, तो इसका मतलब है कि आप MacPorts अजगर को आपके द्वारा स्थापित नहीं कर रहे हैं। एक टर्मिनल शेल में, आप विभिन्न पायथन को स्थापित करने के लिए निरपेक्ष पथ का उपयोग कर सकते हैं जो स्थापित हो सकते हैं। उदाहरण के लिए:

$ /usr/bin/python2.5         # Apple-supplied 2.5 (Leopard)
$ /opt/local/bin/python2.5   # MacPorts 2.5
$ /opt/local/bin/python2.6   # MacPorts 2.6
$ /usr/local/bin/python2.6   # python.org (MacPython) 2.6
$ /usr/local/bin/python3.1   # python.org (MacPython) 3.1

डिफ़ॉल्ट रूप से सही अजगर प्राप्त करने के लिए आपके शेल को सुनिश्चित करने की आवश्यकता है $ PATH यह सुनिश्चित करने के लिए ठीक से सेट है कि सही निष्पादन योग्य पहले पाया गया है। एक और उपाय है कि विभिन्न पिरामिडों में शेल उपनामों को परिभाषित किया जाए।

एक python.org (MacPython) इंस्टॉलेशन ठीक है, जैसा कि अन्य लोगों ने सुझाव दिया है। easy_install मदद कर सकते हैं लेकिन, फिर से, क्योंकि प्रत्येक पायथन उदाहरण की अपनी easy_installकमान हो सकती है , सुनिश्चित करें कि आप सही को लागू कर रहे हैं easy_install


2
यदि वह MacPorts का उपयोग करता है, तो पायथन के उस संस्करण को डिफ़ॉल्ट बनाने का सही तरीका PATH के साथ गड़बड़ नहीं है, लेकिन "python_select" को स्थापित करने के लिए और इसे स्वचालित रूप से आवश्यक प्रतीकात्मक लिंक को स्विच करने दें ताकि पायथन को डिफ़ॉल्ट बनाया जा सके।
माइकल आरोन सफ़्यान

3
python_select केवल / ऑप्ट / लोकल / बिन में python symlinks का प्रबंधन करता है और इस बात की कोई गारंटी नहीं है कि आपके $ PATH में us / usr / local / bin या usr / bin से पहले / ऑप्ट / लोकल / बिन आता है (हालाँकि MacPorts की प्रारंभिक स्थापना का प्रयास करता है) ऐसा करो)। बिंदु, कई संस्करणों के साथ उपलब्ध है, बस "अजगर" या यहां तक ​​कि "python2.5" का उपयोग करना सामान्य रूप से एक क्रैम्पशूट का एक सा है: आपको पता नहीं है कि आप पायथन को समाप्त कर देंगे जब तक आप $ के बारे में नहीं जानते हैं पथ के नुकसान और / या निरपेक्ष पथ का उपयोग करें।
नेड डिली

6

यदि आप MacPorts से पायथन का उपयोग करते हैं, तो इसका स्वयं का easy_install स्थित है: /opt/local/bin/easy_install-2.6 ( py26 के लिए, वह है)। यह केवल एक ही नहीं है, जैसे कि आप आसानी से सीधे कॉल कर रहे हैं, भले ही आपने अपने डिफ़ॉल्ट अजगर कमांड को बदलने के लिए python_select का उपयोग किया हो।


1
पाइप के लिए भी। अपने MacPorts सेटअप के साथ, मैं python मॉड्यूल स्थापित करने के लिए pip-2.6 (जो / ऑप्ट / लोकल / बिन / में है) चलाता हूं जो MacPorts अजगर के साथ अच्छा खेलता है। आप sudo port install py2.6-pipपाइप प्राप्त कर सकते हैं ।
zlovelady

4

क्या आपने easy_install पर ध्यान दिया है? यह आपके macports या ऐसा कुछ भी सिंक्रनाइज़ नहीं करेगा, लेकिन यह स्वचालित रूप से नवीनतम पैकेज और सभी आवश्यक निर्भरताएं डाउनलोड करेगा, अर्थात

easy_install nose

नाक इकाई परीक्षण पैकेज के लिए, या

easy_install trac

के लिए tracबग ट्रैकर।

उनके EasyInstall पेज पर भी कुछ अधिक जानकारी है।


1
easy_install ठीक है। बस इस बात से अवगत रहें कि, जैसे आपके पास अजगर के कई संस्करण स्थापित हो सकते हैं, वैसे ही स्थापित करने के लिए आसान कई संस्करणों में से एक है, प्रत्येक अलग अजगर स्थापना / संस्करण के साथ जुड़ा हुआ है। आपको केवल यह सुनिश्चित करने की आवश्यकता है कि आप यह समझ रहे हैं कि आप किसको आमंत्रित कर रहे हैं (जो (1) मदद का हो सकता है)।
नेड डिली जूल

3

MacPython स्थापनाओं के लिए, मैंने इस ब्लॉग में setuptools (easy_install) के साथ समस्या को ठीक करने का एक प्रभावी समाधान पाया:

http://droidism.com/getting-running-with-django-and-macpython-26-on-leopard

एक आसान टिप में यह पता लगाना शामिल है कि टर्मिनल में अजगर का कौन सा संस्करण सक्रिय है:

which python

2

जब आप MacPorts के साथ मॉड्यूल स्थापित करते हैं, तो यह ऐप्पल के पायथन संस्करण में नहीं जाता है। इसके बजाय उन मॉड्यूल को चुने गए पायथन के मैकपोर्ट्स संस्करण पर स्थापित किया गया है।

आप पायथन के किस संस्करण को डिफ़ॉल्ट रूप से python_select नामक मैक पोर्ट का उपयोग करके बदल सकते हैं । यहाँ निर्देश ।

इसके अलावा, वहाँ easy_install है । जो अजगर मॉड्यूल को स्थापित करने के लिए अजगर का उपयोग करेगा।


python_selectअब हटा दिया गया है, नए उत्तर देखें।
Askewchan

2

आपके पास pip3पहले से ही प्री-इंस्टॉल्ड हो सकता है, इसलिए बस कोशिश करें!


1

किस अजगर संस्करण का उपयोग करने के बारे में, मैक ओएस आमतौर पर अजगर के एक पुराने संस्करण को जहाज करता है। नए संस्करण में अपग्रेड करना एक अच्छा विचार है। आप एक .dmg को http://www.python.org/download/ से डाउनलोड कर सकते हैं । यदि आप ऐसा करते हैं, तो पथ को अपडेट करना याद रखें। आप सटीक आदेशों यहां पा सकते हैं http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/


-1

मैं Apple के पायथन के साथ easy_install का उपयोग करता हूं , और यह एक आकर्षण की तरह काम करता है।


-1

फ़िंक पैकेजों में से एक को सीधे स्थापित करें (2013-नवंबर तक Django 1.6)

fink install django-py27
fink install django-py33

या अपने आप को एक virtualenv बनाएँ:

fink install virtualenv-py27
virtualenv django-env
source django-env/bin/activate
pip install django
deactivate # when you are done

या fink django plus को किसी virtualenv में किसी अन्य pip install पैकेज का उपयोग करें

fink install django-py27
fink install virtualenv-py27
virtualenv django-env --system-site-packages
source django-env/bin/activate
# django already installed
pip install django-analytical # or anything else you might want
deactivate # back to your normally scheduled programming
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.