मैक ओएसएक्स पर अजगर स्थान


94

मैं osx पर अजगर के साथ थोड़ा भ्रमित हूं। मुझे नहीं पता कि लैपटॉप के पिछले मालिक ने macport का उपयोग करके macpython स्थापित किया है या नहीं। और मुझे याद आया कि ओएक्सएक्स में अजगर का एक अंतर्निहित संस्करण है। मैंने उपयोग करने की कोशिश की type -a pythonऔर परिणाम वापस आ गया

python is /usr/bin/python
python is /usr/local/bin/python

हालाँकि इन स्थानों पर दोनों अजगर चलाना मुझे देते हैं [GCC 4.2.1 (Apple Inc. build 5646)] on darwin। क्या वे दोनों प्रदान किए गए समान अंतर्निहित अजगर मैक का उल्लेख करते हैं?

मैंने यह भी पढ़ा है कि macpython स्थापित करना एक होगा

     A MacPython 2.5 folder in your Applications folder. In here you
 find IDLE, the development environment that is a standard part of
 official Python distributions...

मैंने देखा और उसके साथ Applicationsएक MacPortफोल्डर python2.6और उसमें उल्लेखित सामान को रखा। लेकिन IDLE को चलाने पर, मुझे ऊपर जैसा संदेश मिलता है।

हम्म मैं थोड़ा कंफ्यूज हूं। कौन सा क्या है?

जवाबों:


63

[GCC 4.2.1 (Apple Inc. build 5646)]जीसीसी का संस्करण है जिसे पायथन (ओं) के साथ बनाया गया था, न कि पायथन के संस्करण के साथ। वह जानकारी पिछली लाइन पर होनी चाहिए। उदाहरण के लिए:

# Apple-supplied Python 2.6 in OS X 10.6
$ /usr/bin/python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

# python.org Python 2.7.2 (also built with newer gcc)
$ /usr/local/bin/python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

/usr/binओएस एक्स में ऐप्पल द्वारा आपूर्ति की गई फ़ाइलों के लिए आइटम हमेशा लिंक या लिंक होने चाहिए, जब तक कि किसी को वहां की गैर-जरूरी चीजों को बदलने की सलाह न दी गई हो। यह देखने के लिए कि यह कहां /usr/local/bin/pythonसे जुड़ा है:

$ ls -l /usr/local/bin/python
lrwxr-xr-x  1 root  wheel  68 Jul  5 10:05 /usr/local/bin/python@ -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/python

इस मामले में, यह एक अजगर के लिए विशिष्ट है। पायथन उदाहरण स्थापित किया गया है या यह स्रोत से बनाया जा सकता है।


54

मुझे इसका पता लगाने का सबसे आसान तरीका मिला, आप इसका उपयोग कर सकते हैं

which python

यह कुछ इस तरह दिखाएगा:

/usr/bin/python


3
इसका उत्तर नहीं है कि पायथन का वितरण (जिसने इसे बनाया)।
स्कॉट प्रिव

53

मैक ओएस एक्स पर, यह पायथन फ्रेमवर्क में है /System/Library/Frameworks/Python.framework/Resources

पूर्ण पथ है:

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

Btw यह पता लगाना आसान है कि आप एक विशिष्ट बाइनरी कहां पा सकते हैं: which Pythonआपको अपने पायथन बाइनरी का रास्ता दिखाएगा (जो कि संभवतः जैसा मैंने ऊपर पोस्ट किया है)।


हाँ, मुझे पता था कि इसका सिर्फ इतना है कि मैं उलझन में हूँ - मैंने दुभाषिया पर / usr / स्थानीय / बिन / और मुद्रित sys.executable भागा। यह कहता है / usr / bin / python। लेकिन मैं डॉक्स पढ़ता हूं और यह कहता है कि प्रदान किया गया सेब / usr / bin / में था और macpython के "A symlink to Python निष्पादन योग्य को / usr / local / bin /" में रखा गया है।
गोह

ठीक है, यह समझ में आता है: जब आप अजगर-निष्पादन योग्य खुद को संकलित करते हैं और इसे / उपयोगकर्ता / जॉन / डाउनलोड / कहते हैं, तो यह आपको यह दिखाएगा कि इसे / उपयोगकर्ता / जॉन / डाउनलोड / अजगर में रखा गया है। आप एक ही सिस्टम पर एक-दूसरे के बगल में कई निष्पादन योग्य चला सकते हैं। AFAIK पायथन में एक है। Framework एक प्राथमिक हालांकि है, इसलिए आपको उस पर भरोसा करना चाहिए।
एलसो जू

28
दरअसल, मैक ओएस एक्स में ऐप्पल द्वारा आपूर्ति किए गए पायथन हैं /System/Library/Frameworks/Python.framework/Library/Frameworks/Python.frameworkथर्ड-पार्टी इंस्टॉल से कुछ भी आता है, आमतौर पर एक python.org (या अन्य वितरक) इंस्टॉलर या यदि आपने स्रोत से पायथन का एक डिफ़ॉल्ट ढांचा बनाया है।
नेड डीली जूल

1
जब मैं चलाने के उत्पादन मुझे पता चलता है , क्यों कि है - मैं नहीं दिख रहा है कि यह एक सिमलिंक है? ( AskDifferent पर यह प्रश्न पूछा गया )/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7ps aux/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Zitrax

@ टिम धन्यवाद जब मैं /Library/Frameworks/Python.framework/Versions/ पर जाता हूं, तो मुझे 2.7 (जो मैंने स्थापित किया है) नहीं दिखता है, लेकिन 'करंट' नामक एक अन्य फ़ाइल, जिसे क्लिक करने पर, मुझे त्रुटि मिलती है "ऑपरेशन" प्रतिस्पर्धा नहीं की जा सकती क्योंकि 'करंट' के लिए मूल वस्तु नहीं मिल सकती है। "
पाइडरमैन

42

यह एक अजगर और मैक से निपटने के लिए आपकी सभी समस्याओं को हल करेगा :

यदि आपके पास एक मैक है और आपने python3 स्थापित किया है जैसे हम में से अधिकांश :) (काढ़ा स्थापित - ofc के साथ)

आपकी फ़ाइल इसमें स्थित है:

/usr/local/Cellar/python/3.6.4_4/bin/python3

आपको कैसे मालूम? Daud:

which python3

आपको मिलना चाहिये:

/usr/local/bin/python3

अब यह एक प्रतीकात्मक कड़ी है, आप कैसे जानते हैं? Daud:

ls -al /usr/local/bin/python3 

और आपको मिलेगा:

/usr/local/bin/python3 -> /usr/local/Cellar/python/3.6.4_4/bin/python3

जिसका मतलब है कि आपका

/usr/local/bin/python3 

वास्तव में इंगित कर रहा है:

/usr/local/Cellar/python/3.6.4_4/bin/python3

यदि, किसी कारण से, आपके

/usr/local/bin/python3 

उस स्थान की ओर संकेत नहीं कर रहा है जिसे आप चाहते हैं, जो हमारे मामले में है:

/usr/local/Cellar/python/3.6.4_4/bin/python3

बस इसका बैकअप लें:

cp /usr/local/bin/python3{,.orig} 

और भाग खड़ा हुआ:

rm -rf /usr/local/bin/python3

अब एक नया प्रतीकात्मक लिंक बनाएं:

ln -s /usr/local/Cellar/python/3.6.4_4/bin/python3 /usr/local/bin/python3 

और अब तुम्हारा

/usr/local/bin/python3

की ओर इशारा कर रहा है

/usr/local/Cellar/python/3.6.4_4/bin/python3 

इसे चलाकर देखें:

ls -al /usr/local/bin/python3

1
अंत में .... धन्यवाद !!!!! मैं एक आभासी वातावरण में इस मुद्दे पर चल रहा था। समाधान भी काम करता है। बस सही अजगर स्थान का उपयोग करने की आवश्यकता है
पॉल जुर्स्की

6

हाई सिएरा पर

which python

डिफ़ॉल्ट अजगर दिखाता है, लेकिन अगर आपने python.org से नवीनतम संस्करण डाउनलोड और इंस्टॉल किया है, तो आप इसे इसके द्वारा पा सकते हैं:

which python3.6

जो मेरी मशीन पर दिखाता है

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6

इसका उत्तर नहीं है कि पायथन का वितरण (जिसने इसे बनाया)।
स्कॉट प्रिव


3

मैंने कुछ इसी तरह की चर्चा की और सभी python2 / python3 बिल्ड का पता लगाने का सबसे अच्छा तरीका पाया:

which -a python python3


1

which python3 बस एक मार्ग है जिसमें दुभाषिया बसता है।


0

इसे अपने इंटरैक्टिव टर्मिनल में चलाएं

import os
os.path

यह आपको वह फ़ोल्डर देगा जहां अजगर स्थापित है


0

.py फ़ाइल में निम्न कोड चलाएँ:

import sys

print(sys.version)
print(sys.executable)

-1

मेरे पास linux / macos में चीजों को खोजने के लिए एक कुक नुस्खा है

पहले खोज db को अपडेट करें फिर a

locate WHATiWANTtoSEARCH | less

ऐसा करना / खोजना जो आप ढूंढ रहे हैं।

मैक्रोज़ में अपना पता db अपडेट करने के लिए यह करें:

sudo /usr/libexec/locate.updatedb

इसमें कभी-कभी समय लगता है। उम्मीद है की यह मदद करेगा :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.