2016-12-23 36 views
5

Pip ve python3 kullanarak bazı paketleri yüklemeye çalışıyorum.Pip3 ve python3 -m pip arasındaki fark

$ pip3 install package_name 

Ancak, Ben: Ben Pip çalıştırdığınızda, ben kullanarak piton 3'te bir paket yüklemek mümkün olmuştur

2. Python benim sürümünü kullanır varsayılan olarak bu yüzden, MacOS kullanıyorum aynı biriminin by yapabilir (en azından öyle görünüyor):

$ python3 -m pip install package_name 

aynı etkiye sahip olup olmadığı pip3 ve python3 -m pip merak ediyorum.

+2

değil koşmak, ancak iki farklı isim ararken çünkü ... Senin kabuk, farklı davranabilir olabilir. Bazen,/usr/local/'veya weirder yerlerinin altına yeni yazılımlar yüklenir ve tipik' $ PATH' veya dosya sistemi hiyerarşisine verilen tek imtiyaz, '/ usr/bin/python3 gibi el yapımı bir sembolik bağlantıdır ->// deneysel/python3.2-yerel-MyEdit/bin/python' opt. Çoğu zaman bu kurulumlarda, "python" veya "perl" gibi sadece "star" ikilisi sembolik olurken, ilgili ikili dosyalardan ("pip" gibi) elkitaplarına kadar olan her şey kullanıcılara işletim sisteminin kurulum ortamına gelenleri gönderir. –

+1

Kişisel komut dosyaları, kabuk işlevleri ve diğer adlar benzer hatalara tabidir. Örnek: "python" 'u çalıştırmadan önce bazı yapılandırma dosyalarını kaynak edin, fakat' pip 'değil. –

cevap

9

Bunlar aynı. Pip3 dosyasını bin klasörüne bakarsanız, pip modülünden main işlevini çağırır.

pip3 install package_name bin klasöründe PIP3 dosyasını çalıştırır:

# 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 modülünün __init__.py dosyayı çalıştırır.

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

İkisi Python özgü aynı main() işlevi

+1

Teşekkür ederim, 'pip3' ('$ less/usr/local/bin/pip3') kodunun nasıl görüldüğünü biliyorum, ancak python3 -m pip install .... 'kullandığı kodu nasıl öğrendiniz? ? Kevin J. Chase'in önerdiği gibi – lmiguelvargasf

+0

, kabuğun iki farklı isim aradığını gösteriyor. Ne söylediğinizi temin etmenin bir yolu var mı? Yani $ python3 -m pip yüklemesi ile çalıştırılan kodu nasıl bileceğim ... ' – lmiguelvargasf

+1

' python3 -m module' modülün '__init __. Py' dosyasını çalıştıracaktır. Daha fazla açıklama için bu [SO post] (http://stackoverflow.com/questions/22241420/execution-of-python-code-with-m-option-or-not) adresine bakın. – tihom