파이썬에서 "pip install"이 SyntaxError를 발생시키는 이유는 무엇입니까?


232

pip를 사용하여 패키지를 설치하려고합니다. pip install파이썬 셸에서 실행하려고 하지만을 얻습니다 SyntaxError. 이 오류가 발생하는 이유는 무엇입니까? pip를 사용하여 패키지를 설치하려면 어떻게합니까?

>>> pip install selenium
              ^
SyntaxError: invalid syntax

답변:


297

pip는 Python 인터프리터가 아닌 명령 줄에서 실행됩니다. 모듈 을 설치 하는 프로그램 이므로 파이썬에서 모듈을 사용할 수 있습니다. 모듈을 설치하면 Python 셸을 열고 할 수 있습니다 import selenium.

파이썬 쉘은 명령 행이 아니며 대화식 인터프리터입니다. 명령이 아닌 Python 코드를 입력하십시오.


2
명확하게 해 주셔서 감사하지만 여전히 실행할 수 없습니다. 정확히 어디입니까? "핍이 인식되지 않습니다"오류가 발생합니다 (올바른 디렉토리가 아니기 때문에). 그것은 \ site-packages에 설치되었지만 생각하고 있는데 pip.exe를 찾을 수 없습니다
Nacht

25
@Nacht- pip파이썬 설치 스크립트 디렉토리에 있으므로 경로에 추가하고 싶습니다. 에 추가 C:\Python32\scripts하십시오 PATH. 설치 위치에 따라 필요에 따라 경로를 변경하십시오.
wkl

3
실제로 Windows의 pip.exe는 / scripts 디렉토리의 다른 스크립트와 같은 python 스크립트이지만 기본 python 인터프리터로 실행하기 위해 exe로 래핑되었습니다. 7-zip으로 pip.exe를 열면 pip, sys 및 re 모듈을 가져 오는 주요 .py를 볼 수 있습니다 ... (파이썬 셸 내에서 실행하는 방법에 대한 답변을 찾을 수 있습니다) 파이썬 모듈. 윈도우는 파이썬을 지원하는 최초의 플랫폼이 아니었고, 리눅스는 파이썬이 OS의 일부라는 것을 잊지 마십시오.
Zydnar

1
필자는 명령 줄 (파이썬 명령 줄이 아닌) 에서이 작업을 수행해야한다는 것을 알고 있습니다. 이것은 디렉토리를 python.exe의 위치로 변경 한 후 파일 유형을 pip3에 배치해야했습니다. 제 경우에는 HTTP 작업 요청을 받았습니다. 즉 : python pip3.exe 설치 요청 <--- 이것은 완벽하게 작동했으며 pytz 모듈에서도 동일하게 반복되었습니다.
natur3

106

Python 셸 (DOS, Windows의 PowerShell)이 아닌 명령 줄을 사용하십시오.

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

최신 설치 프로그램을 사용하여 PATH에 Python을 설치 한 경우 pip를 실행하기 위해 해당 폴더에 있지 않아도됩니다.

Mac 또는 Linux의 터미널

$ pip install XYZ

3
C : ....를 포함 해 주셔서 감사합니다. 명령 줄을 열고 pip를 입력 할 수 없기 때문에 어디로 cd 해야하는지 알 수있었습니다.
hammythepig

2
참고로 방금 Python 설치를 설정하지 않았습니다 PATH. 나는에 설치 경로를 가리키는이 수동으로해야했다%APPDATA%
UuDdLrLrSs

61

: @sinoroc이 주사위를 통해 패키지를 설치하는 올바른 방법을 제안 핍이 스레드를 폐쇄의 원인이되므로 별도의 프로세스를 사용하거나이 API를 사용하는 올바른 방법이 그래서 새로운 설치된 패키지를로드 할 인터프리터를 다시 시작해야 할 수 있습니다 subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])파이썬 수 있기 때문에하지만, 내부 API에 액세스하고 API를 사용하는 것을 알고 있다면 내부 API를 사용할 수 있습니다. https://www.lfd.uci.edu/~gohlke/pythonlibs/ 와 같은 대체 리소스를 사용하여 자체 GUI 패키지 관리자를 구축하는 경우

다음 업데이트는 추천 업데이트를 다운 보팅하는 대신 날짜가 지났습니다. 참조 https://github.com/pypa/pip/issues/7498을 참조.


UPDATE : PIP 버전 10.x를가 있기 때문에 더 이상이 get_installed_distributions()또는 main방법에 따라 import pip 대신 사용하지 import pip._internal as pip .

업데이트 ca. v.18 get_installed_distributions() 이 제거되었습니다. 대신 다음 freeze과 같이 생성기를 사용할 수 있습니다 .

from pip._internal.operations.freeze import freeze

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

# eg output ['pip==19.0.3']


파이썬 인터프리터에서 pip를 사용하려면 다음을 시도하십시오.

import pip

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

설치된 모든 패키지를 업데이트해야하는 경우 다음을 사용하십시오.

import pip

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

설치에 실패한 경우 다른 패키지 설치를 중지하려면 한 번의 pip.main([])호출로 사용하십시오 .

import pip

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

참고 : -r/ --requirement매개 변수가 있는 파일의 목록에서 설치할 때 open () 함수가 필요하지 않습니다.

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

경고 : 일부 매개 변수는 단순 --help하면 파이썬 인터프리터가 중지 될 수 있습니다.

호기심 : pip.exe실제로 파이썬 인터프리터와 pip 모듈 을 사용 하면됩니다. python 2.x 또는 3.x의 압축을 풀 pip.exe거나 pip3.exe상관없이 SAME 단일 파일 안에 있습니다 __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
이것은 파이썬 쉘에서 작동하므로 허용되는 대답이어야한다고 생각합니다.
François M.

5
이것은이 문제를 인터넷 검색 할 때 내가 찾고 싶었던 것입니다.
Andrew Brēza

1
훌륭한 답변이며 여기에 포함되어야하지만 사용자가 현재 유비쿼터스 구문 "pip install"을 명확하게 만들려고했기 때문에 허용 된 답변이어야한다고 동의하지 않습니다. 해당 구문은이 방법으로 작동하지 않으므로 해당 문제를 직접 해결하지는 않습니다. 그래도 허용 된 답변보다 유용 할 수 있습니다 :)
Dan

실제로 OP의 의미가 무엇인지 모르지만이 답변은 실제로 늦은 답변이므로 여기에서 받아 들여지는 것이 중요하지 않습니다.
Zydnar

@Zydnar는 동의했다. 내 대답은 Francois에 대한 것이며,이 답변은 이것이 정답이라고 답변했다. 나는 왜 안되는지에 대한 추론을 올렸다. 즉, 나는 여전히 이것이 좋은 게시물이라고 생각합니다.
Dan

53

Python 3.x에서 pip를 실행하려면 Python 페이지 : Python 모듈 설치 의 지시 사항을 따르십시오 .

python -m pip install SomePackage

이것은 파이썬 쉘이 아닌 명령 줄에서 실행됩니다 (원래 질문의 구문 오류의 원인).


1
여전히 유효하지 않은 구문을 받고 있습니다. Windows 10 PC에서 IPython을 사용하고 있습니다. 이견있는 사람?
DataGirl

이 페이지에는 IPython 설치 지침이 있습니다 : ipython.readthedocs.io/en/stable/install/index.html $ pip install ipython. 아마도 그것은 $ python -m pip install ipython
Dan

1
이것은 구문 오류에 대해서는 아무 대답도하지 않습니다
OneCricketeer

이것은 이미 다른 답변으로 덮여 있었지만 지금 추가했습니다. 내 대답은 3.x를 보완 한 것입니다.
Dan

윈도우 10에 나를 위해 일한 - 또한 : 이전 의견에 따라 주사위를 업그레이드 충고
Kdean571

2

처음에는이 같은 문제에 직면하여 파이썬을 설치했으며 pip명령을 실행할 때 아래 그림과 같이 오류가 발생했습니다.

여기에 이미지 설명을 입력하십시오

환경 변수에 pip 경로가 추가되었는지 확인하십시오. 나를 위해 python 및 pip 설치 경로는 다음과 같습니다. :
Python : C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
pip :이 C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
두 경로는 환경 변수의 경로에 추가되었습니다.

이제 새로운 cmd 창을 열고 pip를 입력하면 아래와 같은 화면이 나타납니다.

여기에 이미지 설명을 입력하십시오

이제를 입력하십시오 pip install <<package-name>>. 여기에 spyder 패키지를 설치하여 명령 줄 문을 그대로 pip install spyder실행 화면으로 이동합니다.

여기에 이미지 설명을 입력하십시오

그리고 우리가 이것으로 끝났 으면 좋겠다 !!


1
이것은 질문에 대답하지 않습니다.
sinoroc

0

IDLE이 아닌 cmd에 입력해야합니다. IDLE에서 무언가를 설치하려면 IDLE이 명령 프롬프트가 아니기 때문에

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

이것은 pip <commands>터미널에서 와 같이 pip를 호출 합니다. 명령은 당신이하고있는 공백으로 구분됩니다.


이것은 pip 버전 10.0 이후의 오래된 답변입니다. ImportError: cannot import name mainpip v19.0.3 사용
Zydnar

-1

프로그래밍 방식으로 다음이 현재 작동합니다. 모든 답변이 10.0으로 게시 된 것을 보았지만 올바른 답변은 없습니다. 확실히 Kaggle 내 에서이 apporach는 작동합니다.

from pip._internal import main as _main

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

왜 jusy를 사용하지 않는가 : from pip .__ main__ import _main?
Matthijs990

-3

아래 명령으로 pip를 업그레이드하고 다시 시도하십시오.

python -m pip install -U pip

pip 업데이트는 python shell에서 작동하지 않을 것입니다
Matthijs990
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.