2016-12-23 25 views
5

के बीच अंतर मैं पाइप और पायथन 3 का उपयोग करके कुछ पैकेज स्थापित करने की कोशिश कर रहा हूं। मैं, MacOS उपयोग कर रहा हूँ तो डिफ़ॉल्ट रूप से, जब मैं पिप चलाने के लिए, यह अजगर के अपने संस्करण 2पीपी 3 और पायथन 3-एम पीपी

मैं का उपयोग करके अजगर 3 में एक पैकेज स्थापित करने में सक्षम है का उपयोग करता है:

$ pip3 install package_name 

हालांकि, मैं कर रहा हूँ एक ही द्वारा ऐसा करने में सक्षम (कम से कम ऐसा लगता है):

$ python3 -m pip install package_name 

मुझे आश्चर्य है कि क्या है या नहीं pip3 और python3 -m pip एक ही प्रभाव है।

+2

नहीं पायथन के लिए विशिष्ट चलाते हैं, लेकिन ... आपका खोल अलग ढंग से, क्योंकि यह दो अलग-अलग नामों को देख रहा है व्यवहार कर सकता है। कभी-कभी, '/ usr/local/'या weirder स्थानों के तहत नया सॉफ़्टवेयर स्थापित किया जाता है, और सामान्य' $ PATH' या फाइल सिस्टम पदानुक्रम के लिए एकमात्र रियायत एक हाथ से तैयार सिम्लिंक है जैसे'/usr/bin/python3 ->/चुनते/प्रायोगिक/python3.2-स्थानीय myedit/bin/python'। अक्सर इन सेटअप में, केवल 'स्टार "बाइनरी जैसे' पायथन 'या' पर्ल 'को सिम्लिंक किया जाता है, जबकि संबंधित बाइनरी (जैसे' पीपी') से मैन्युअल पेजों में सबकुछ उपयोगकर्ताओं को ओएस के इंस्टॉलेशन मीडिया पर जो भी आता है, भेजता है। –

+1

व्यक्तिगत स्क्रिप्ट, खोल कार्य, और उपनाम समान त्रुटियों के अधीन हैं। उदाहरण: 'पायथन' चलाने से पहले कुछ कॉन्फ़िगरेशन फ़ाइल सोर्सिंग, लेकिन 'पीआईपी 'नहीं। –

उत्तर

9

वे वही हैं। यदि आप बिन फ़ोल्डर में pip3 फ़ाइल देखते हैं तो यह पाइप मॉड्यूल से main फ़ंक्शन को कॉल करता है।

pip3 install package_name बिन फ़ोल्डर में pip3 फ़ाइल चलाता है:

# bin/pip3 
# or bin/pip if using pip install package_name 

import re 
import sys 

from pip import main 

if __name__ == '__main__': 
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 
    sys.exit(main()) 

python3 -m pip install package_namepip मॉड्यूल के __init__.py फ़ाइल चलाता है।

# pip/__init__.py 
if __name__ == '__main__': 
    sys.exit(main()) 

उन दोनों एक ही main() समारोह

+1

धन्यवाद, मुझे पता है कि 'pip3' ('$ कम/usr/local/bin/pip3') के कोड को कैसे देखें, लेकिन आप उस कोड को कैसे जानते हैं जो' python3 -m pip install .... 'उपयोग करता है ? – lmiguelvargasf

+0

केविन जे चेस के सुझाव के अनुसार, यह संभव है कि खोल दो अलग-अलग नामों को देख रहा हो। क्या आप यह कहने का कोई तरीका है कि आप क्या कह रहे हैं? मेरा मतलब है कि '$ python3 -m pip install' के साथ निष्पादित कोड को कैसे जानें ... ' – lmiguelvargasf

+1

'python3 -m मॉड्यूल' मॉड्यूल की' __init __। Py' फ़ाइल चलाएगा। अधिक विस्तृत स्पष्टीकरण के लिए यह [SO पोस्ट] देखें (http://stackoverflow.com/questions/22241420/execution-of-python-code-with-m-option-or-not) – tihom

संबंधित मुद्दे