Python içerisindeki “pip install” neden bir SyntaxError hatası yükseltiyor?


232

Bir paket yüklemek için pip kullanmaya çalışıyorum. pip installPython kabuğundan kaçmaya çalışıyorum ama SyntaxError. Neden bu hatayı alıyorum? Paketi kurmak için pip'i nasıl kullanabilirim?

>>> pip install selenium
              ^
SyntaxError: invalid syntax

Yanıtlar:


297

pip, Python yorumlayıcısından değil komut satırından çalıştırılır. Modülleri yükleyen bir programdır , böylece bunları Python'dan kullanabilirsiniz. Modülü kurduktan sonra, Python kabuğunu açıp yapabilirsiniz import selenium.

Python kabuğu bir komut satırı değil, etkileşimli bir yorumlayıcıdır. Komutlara değil, içine Python kodu yazarsınız.


2
Açıklama için teşekkürler, ama yine de çalıştıramadım. Tam olarak nerede? Bana "pip tanınmıyor" hatası veriyor (çünkü ben doğru direk değilim). \ Site-paketleri içine yüklendi ama ben düşündüm ve herhangi bir pip.exe bulamıyorum
Nacht

25
@Nacht - pippython kurulumunuzun scriptler dizininde olacak, böylece onu yolunuza eklemek isteyeceksiniz. Ekle C:\Python32\scriptsBlogunuza PATH. Yolu yüklediğiniz yere göre gerektiği gibi değiştirin.
wkl

3
Aslında Windows'daki pip.exe, / script dizindeki diğerlerinde olduğu gibi bir python betiğidir, ancak varsayılan python yorumlayıcısıyla çalıştırmak için exe'ye sarılır. 7-zip ile pip.exe açarak ana .py ithal pip, sys ve re modülleri görebilirsiniz ... (Ve orada bir python kabuğu içinde çalıştırmak için nasıl cevap bulacaksınız) -> pip düzenli python modülü. Pencerelerin python'u destekleyen ilk platform olmadığını, linux'un ve python'un işletim sisteminin bir parçası olduğunu unutmayın.
Zydnar

1
Benim için bunu komut satırından (python komut satırından değil) yapmak zorunda olduğumu biliyorum. Bu, dizini python.exe konumuna değiştirdikten sonraydı ve daha sonra dosya türünü pip3'e koymak gerekiyordu. Benim durumumda HTTP çalışması için istek peşindeydim. Yani: python pip3.exe yükleme istekleri <--- bu mükemmel çalıştı, pytz modülü için aynı tekrarladı
natur3 19:18

106

Python kabuğunu değil, komut satırını kullanın (DOS, Windows'ta PowerShell).

C:\Program Files\Python2.7\Scripts> pip install XYZ

Python'u PATH'nize en son yükleyicileri kullanarak yüklediyseniz, pip'i çalıştırmak için bu klasörde olmanıza gerek yoktur

Mac veya Linux'ta terminal

$ pip install XYZ

3
C: .... dahil ettiğiniz için teşekkürler, sadece komut satırı açmak ve pip yazın olamaz gibi cd için gereken yerde fark etmeme yardımcı oldu.
hammythepig

2
FYI Ben sadece Python kurulum ben ayarlamak vermedi PATH. Kurulum yolunu işaret ederek bunu manuel olarak yapmak zorunda kaldım%APPDATA%
UuDdLrLrSs

61

@Sinoroc'un pip yoluyla bir paket kurmanın doğru yolu önerildiği gibi, pip bir iş parçacığının kapanmasına neden olabileceği veya yeni kurulan paketi yüklemek için yorumlayıcının yeniden başlatılmasını gerektirebileceğinden, bu API'yi kullanmanın doğru yoludur: subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])ancak Python izin verdiği için dahili API'ya erişmek için ve API'yı sizin için ne kullandığınızı biliyorsanız yine de dahili API kullanmak isteyebilirsiniz. https://www.lfd.uci.edu/~gohlke/pythonlibs/ gibi alternatif kaynaklara sahip kendi GUI paket yöneticinizi oluşturuyorsanız

Aşağıdaki ruh, DÜŞÜK DEĞİLDİR, aşağı düşürme önerilerini güncellemek yerine. referans için bkz. https://github.com/pypa/pip/issues/7498 .


GÜNCELLEŞTİRME : Pip 10.x sürümünden bu yana kullanımda başka yöntem get_installed_distributions()veya mainyöntem yoktur .import pip import pip._internal as pip

GÜNCELLEME ca. v.18 get_installed_distributions() kaldırıldı. Bunun yerine jeneratörü şu şekilde kullanabilirsiniz freeze:

from pip._internal.operations.freeze import freeze

print([package for package in freeze()])

# eg output ['pip==19.0.3']


Python yorumlayıcısının içinde pip kullanmak istiyorsanız şunu deneyin:

import pip

package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade']) 
# --upgrade to install or update existing packages

Yüklü her paketi güncellemeniz gerekiyorsa, aşağıdakileri kullanın:

import pip

for i in pip.get_installed_distributions():
    pip.main(['install', i.key, '--upgrade'])

Herhangi bir kurulum başarısız olursa diğer paketleri yüklemeyi durdurmak istiyorsanız, tek bir pip.main([])çağrıda kullanın:

import pip

package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])

Not : -r/ --requirementparametresiyle dosyadaki listeden yüklediğinizde, open () işlevine gerek duymazsınız.

pip.main(['install', '-r', 'filename'])

Uyarı : Basit olan bazı parametreler --helppython yorumlayıcısının durmasına neden olabilir.

Merak: pip.exeGerçekten kullanarak python yorumlayıcı ve pip modülünü kullanın. Paketinden çıkarırsanız pip.exeveya pip3.exepython 2.x veya 3.x'ten bağımsız olarak, içinde SAME tek dosya bulunur __main__.py:

# -*- coding: utf-8 -*-
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())

5
Bu Python kabuğunda çalışır, bu yüzden kabul edilen cevap olması gerektiğini düşünüyorum.
François M.

5
Tam da bu problemi araştırırken bulmayı umduğum şey buydu.
Andrew Brēza

1
Büyük cevap, ve kesinlikle buraya dahil edilmelidir, ancak kullanıcı açıkça şimdi her yerde sözdizimi "pip install" çalışması yapmaya çalışıyordu çünkü kabul edilen cevap olması gerektiğini kabul etmiyorum. Sözdizimi bu yöntemle çalışmadığından, bu sorunu doğrudan çözmez. Yine de kabul edilen cevaptan daha yararlı olabilir :)
Dan

OP'nin gerçekten ne anlama geldiğini bilmiyorum, ama bu cevap gerçekten geç cevaptı, bu yüzden burada kabul edilirse önemli değil.
Zydnar

@Zydnar, kabul etti - cevabım bunun kabul edilen cevap olması gerektiğini söyleyen Francois'e oldu. Neden olmasın diye muhakeme yaptım. Bununla birlikte, bunun harika bir gönderi olduğunu düşünüyorum.
Dan

53

Python 3.x'te pip çalıştırmak için Python'un sayfasındaki talimatları izleyin: Python Modüllerini Kurmak .

python -m pip install SomePackage

Bunun python kabuğundan değil, komut satırından çalıştırıldığını unutmayın (orijinal sorudaki sözdizimi hatasının nedeni).


1
Hala geçersiz sözdizimi alıyorum. Windows 10 bilgisayarında IPython kullanıyorum. Düşüncesi olan var mı?
DataGirl

Bu sayfada IPython'u yüklemek için yönergeler bulunmaktadır: ipython.readthedocs.io/en/stable/install/index.html $ pip install ipython. Muhtemelen bu $ python -m pip install ipython çevirecektir
Dan

1
Bu sözdizimi hatasıyla ilgili hiçbir şeye cevap vermiyor
OneCricketeer

Bu zaten diğer cevaplar tarafından kapsanmıştı, ama şimdi ekledim. Cevabım sadece 3.x için bir tamamlayıcıydı.
Dan

Windows 10 benim için çalıştı - ayrıca önceki yoruma göre pip yükseltmek için tavsiye :)
Kdean571

2

Başlangıçta ben de aynı sorunla karşılaştım, python yükledim ve pipkomut çalıştırdığımda bana aşağıdaki resimde gösterildiği gibi bir hata atmak için kullanılır.

resim açıklamasını buraya girin

Emin olun boru yolu çevresel değişkenlere eklenir. Benim için python ve pip kurulum yolu ::
Python: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
pip: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
Her iki yol da çevresel değişkenlerdeki yola eklendi.

Şimdi yeni bir cmd penceresi açın ve pip yazın, aşağıdaki gibi bir ekran görüyor olmalısınız.

resim açıklamasını buraya girin

Şimdi yazın pip install <<package-name>>. İşte komut satırı deyim gibi olacak pip install spyderve burada benim koşu ekran gider gider paket spyder yüklüyorum ..

resim açıklamasını buraya girin

ve umarım bununla işimiz biter !!


1
Bu soruya cevap vermiyor.
sinoroc

0

IDLE'de değil cmd olarak yazmanız gerekir. çünkü IDLE'den bir şey yüklemek istiyorsanız IDLE bir komut istemi değildir.

>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])

Bu pip <commands>terminaldeki gibi pip çağırıyor . Komutlar orada yaptığınız boşluklarla ayrılacaktır.


Bu, pip versiyonu 10.0'dan beri eski bir cevaptır. ImportError: cannot import name mainpip v19.0.3
Zydnar ile

-1

Programlı olarak aşağıdakiler şu anda çalışıyor. Bütün cevapları 10.0 mesajını görüyorum ve hepsi, ama hiçbiri benim için doğru yol değil. Kesinlikle Kaggle içinde, bu apporach çalışır

from pip._internal import main as _main

package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade']) 

neden jusy kullanmayın: pip .__ main__ import _main'den?
Matthijs990

-3

Pip'i aşağıdaki komutla yükseltmeyi deneyin ve tekrar deneyin

python -m pip install -U pip

pip bir güncelleme python kabuk çalışma izin vermez
Matthijs990
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.