파이썬 패키지를 설치하는 가장 좋은 방법은 무엇입니까?


41

Ubuntu 11에서 Python 패키지를 설치하는 가장 좋은 방법은 무엇입니까? 최근 우분투로 개종했으며 모범 사례를 배우고 싶습니다.

문맥 상, tweeststream 패키지를 설치하려고하는데 Synaptic 패키지 관리자에서 보지 못했습니다. 또한 프로그래밍에 익숙하지 않지만 일반적으로 코드 샘플을 따라갈 수 있습니다.


답변:


30

"python-pip"와 같은 Python 패키징 시스템을 설치하는 것이 최선의 방법이라고 생각합니다. Synaptic 또는 Ubuntu Software Center와 함께 설치할 수 있습니다.

Pip을 사용하면 다음과 같이 간단하게 Python 패키지를 쉽게 설치 및 제거 할 수 있습니다 pip install package. 귀하의 경우 터미널에서 다음과 같습니다.

sudo pip install tweeststream

3
간단한 패키지에는 적합하지만 numpy
hayd


2
@ naught101 아마도 scipy를 의미한다고 생각합니다. 관련되어 있는지 확실하지 않습니다 ... 파이프 경로에서 pip가 너무 늦은 것처럼 보입니다. 나는 아나콘다 / 콘 다를 사용하는 것이 좋습니다. 핍 IMO보다 훨씬 우수합니다.
hayd

2
IMHO 사용 sudo pip <anything>은 매우 신중하게 사용해야합니다. 우분투 소프트웨어 센터tweetstream 에 없기 때문에 virtualenv 사용하는 것이 좋습니다 . tweetstream의가 필요로 하는 것입니다 우분투 패키지 . 에 tweetstream을 설치하지 않으면 다른 Ubuntu 앱 이 실패 할 수 있습니다. 하드 문제를 해결하십시오. setup.pyanyjsonvirtualenvanyjson
Mark Mikofski

9
반복하려면 : sudo pip우분투에서 사용하지 마십시오 . @ MarkMikofski : virtualenv가 필요하지 않습니다 (특정한 이유로 그것을 원하지 않는 한). 현재 사용자를위한 python -mpip install --user package-name패키지 packafe-name를 설치할 수 있습니다 . 복잡한 (큰 C 확장명) 종속성이있는 경우 apt-get필요하지 않은 경우 빌드 종속성을 설치하지 않으려면을 사용하여 설치할 수 있습니다 .
jfs

37

업데이트 : 2019-05-11 :이 게시물은 주로`` 모듈 설치에 대한 Python doc에virtualenv 따르면 Python 3.5 " 가상 환경을 만드는 데 사용하는 것이 좋습니다"이므로 3.4 이전의 Python 버전에 대한 대안입니다 .venvvirtualenv

업데이트 : 2018-08-17 : 모든 플랫폼 에서 아나콘다에 conda-4.4.0 사용 이후condaactivate

업데이트 날짜 : 2017-03-27 : PEP 513- manylinuxPyPI 바이너리

업데이트 : 2016-08-19 : 연속체 아나콘다 옵션

이것은 easy_install / pip 또는 apt-get 의 복제본입니다 .

대한 글로벌 파이썬 패키지를 사용하거나 우분투 소프트웨어 센터, APT, apt-get을 또는 시냅스

Ubuntu는 많은 중요한 기능에 Python을 사용하므로 Python을 방해하면 OS가 손상 될 수 있습니다. 이것은 내가 사용하지 않을 주된 이유입니다 pip내 우분투 시스템에, 대신 내가 하나를 사용하고 우분투 소프트웨어 센터, 시냅스 , apt-get또는 새로운 다만 apt, 모든 기본적으로에서 패키지를 설치하는 우분투 저장소 . 이 패키지는 일반적으로 사전 컴파일되어 테스트되어 더 빠르고 궁극적으로 Ubuntu 용으로 설계되었습니다. 또한 필요한 모든 종속 항목도 설치되며 롤백 할 수 있도록 설치 로그가 유지됩니다. 대부분의 패키지에는 해당 Launchpad 저장소가 있으므로 문제를 제기 할 수 있습니다.

우분투 패키지를 사용해야하는 또 다른 이유는 때때로이 파이썬 패키지가 다운로드 한 위치에 따라 다른 이름을 갖기 때문입니다. Python-chardet은 PyPI와 Ubuntu 리포지토리에서 한 가지로 명명 된 패키지의 예입니다. 따라서 pip install requests우분투 버전의 이름이 다르기 때문에 chardet이 이미 시스템에 설치되어 있다는 사실을 알지 못하므로 시스템을 사소한 방식으로 손상시키는 새로운 버전을 설치하지만 여전히 그 이유는 무엇입니까?

일반적으로 OS에는 신뢰할 수있는 코드 만 설치하려고합니다. 따라서 타이핑에 신경 을 써야합니다$ sudo pip <anything-could-be-very-bad> .

마지막으로 Ubuntu 패키지를 사용하여 설치하기가 더 쉽습니다. 예를 들어 pip install numpygfortran, atlas-dev, blas-dev 및 lapack-dev를 설치하지 않은 경우 numpy & scipy를 설치 하려고 하면 끝없는 컴파일 오류 스트림이 나타납니다. 그러나 우분투 저장소를 통해 numpy & scipy를 설치하는 것은 쉽습니다 ...

$ sudo apt-get install python-numpy python-scipy

운 좋게도, 가장 널리 지원되고 업데이트 된 기존 배포판 중 하나 인 Ubuntu를 사용하고 있기 때문입니다. 필요한 모든 Python 패키지는 Ubuntu 저장소에 있으며 아마도 컴퓨터에 이미 설치되어있을 것입니다. 그리고 6 개월마다 최신 배포판으로 새로운 패키지주기가 릴리스됩니다.

패키지가 Ubuntu 시스템을 방해하지 않는다고 100 % 확신한다면 pip를 사용하여 패키지를 설치할 수 있으며 Ubuntu는 배포 패키지를 다음 폴더에 배치하여 배포 패키지와 별도로 패키지를 유지하기에 충분합니다 dist-packages/. 우분투 저장소에는 pip, virtualenv 및 setuptools가 있습니다. 그러나 virtualenv를 사용하라는 Wojciech의 제안을 두 번째로하십시오.

들어 개인 파이썬 프로젝트 VIRTUALENV에 핍과 휠을 사용하여

최신 버전이 필요하거나 모듈이 Ubuntu 저장소에 없으면 virtualenv를 시작하고 pip를 사용하여 패키지를 설치하십시오. pip와 setuptools가 병합되었지만 IMO pip는 패키지가 파일 시스템에 복사되기 전에 패키지가 완전히 다운로드되어 빌드 될 때까지 기다릴 수 있기 때문에 업그레이드 나 제거가 용이하기 때문에 쉬운 설치 또는 distutils보다 선호됩니다. 많은면에서 apt-get과 비슷합니다. 일반적으로 종속성을 잘 처리한다는 점입니다. 그러나 일부 종속성을 직접 처리 해야 수도 있지만 PEP 513 이 채택 된 이후 manylinuxPyPI (Python Package Index)에는 Ubuntu 및 Fedora와 같은 널리 사용되는 Linux 배포판 용 바이너리 가 있습니다 .예를 들어, NumPy 및 SciPy에 대해 위에서 언급 한 바와 같이 Ubuntu 저장소에서 gfortran, atlas-dev, blas-dev 및 lapack-dev를 설치했는지 확인하십시오. 예를 들어 NumPySciPy기본적으로 OpenBLAS를 대신하여 기본적으로 Ubuntu에 manylinux휠로 배포 됩니다. 아틀라스. pip 옵션 또는 을 사용하여 소스에서 빌드 할 수 있습니다 .--no-use-wheel--no-binary <format control>

~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy

sudoerspip 와 함께 설치 구성표를 사용 하여 개인 프로필에 업데이트 된 버전의 pip, setuptools, virtualenv 또는 wheel을 설치하려면 아래의 "귀하가 없습니다"섹션을 참조하십시오 --user. JF Sebastian이 다른 답변에 대한 주석에서 지적한대로이 기능을 사용하여 개인용 pip를 업데이트 할 수 있습니다 . 참고 : -m는 실제로 pip를 업데이트 할 때 MS Windows에서만 필요합니다 .

python -m pip install --user pip setuptools wheel virtualenv

최신 버전의 pip는 자동으로 휠을 캐시하므로 다음은 이전 버전의 pip에만 유용합니다. 여러 번 설치하면 핍과 함께 ​​wheel을 사용하여 조타실을 만드는 것이 좋습니다. 휠은 virtualenvv13.0.0부터 이미 포함되어 있으므로 버전 virtualenv이 너무 오래된 경우 휠을 먼저 설치해야 할 수 있습니다.

~(my_py_proj)$ pip install wheel  # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy

이 파일에 바이너리 휠 파일이 만들어지고 다른 디렉토리를 지정하는 데 <cwd>/wheelhouse사용 -d됩니다. 이제 다른 virtualenv를 시작하고 이미 구축 한 것과 동일한 패키지가 필요한 경우 다음을 사용하여 조타실에서 설치할 수 있습니다pip install --find-links=<fullpath>/wheelhouse

읽기 파이썬 모듈을 설치 파이썬 설명서와 패키지를 설치 상의 파이썬 패키지 인덱스 메인 페이지 . 또한 PIP , venv , VIRTUALENV .

당신이하지 않은 경우 sudoersvirtualenv설치되지 않습니다.

가상 환경을 사용하거나 루트 권한이없는 Linux 공유를 사용하는 또 다른 옵션은 Python과 함께 --user또는 --home=<wherever-you-want>Python 설치 체계 를 사용하여 원하는 distutilssite.USERBASE또는 원하는 위치에 패키지를 설치합니다 . 최신 버전의 pip에도 --user옵션이 있습니다. 사용하지 마십시오 sudo!

pip install --user virtualenv

Linux 버전의 pip가 너무 오래된 경우 설정 옵션 과 같이 확장을 빌드하는 일부 패키지의 --install-option일부 setup.py스크립트에 사용자 정의 옵션을 전달하는 데 유용한 옵션을 사용하여 설정 옵션을 전달할 수 있습니다 PREFIX. 배포판을 추출하고 distutils를 입력하여 구식 방식으로 패키지를 설치하는 데 사용해야 할 수도 있습니다 python setup install [options]. 의 일부 읽기 문서를 설치 하고 distutils문서가 도움이 될 수 있습니다.

파이썬은 추가 할 수있는 좋은 충분하다 site.USERBASE당신으로 PYTHONPATH변경에만 영향을 미칠 것이다, 그래서 아무것도의 앞. 의 인기있는 위치는 --home입니다 ~/.local. 정확한 파일 구조와 특히 사이트 패키지가있는 위치 는 Python 모듈 설치 안내서 를 참조하십시오 . 참고 : --home설치 체계를 사용하는 경우 현지화 된 패키지를 Python에서 사용할 수 있도록 , 또는 셸을 PYTHONPATH사용하여 환경 변수 에 추가해야 할 수도 있습니다.export.bashrc.bash_profile

수학, 과학, 데이터 또는 개인 프로젝트에 Continuum Anaconda Python 사용

당신도 수학, 과학, 또는 데이터 파이썬을 사용하는 경우, IMO 정말 좋은 옵션은 아나콘다 - 파이썬 배포 또는 기본적인 miniconda 배포판 발표 (이전으로 알려진 아나콘다, Inc.의 연속체 분석은 ) . 개인 프로젝트에 Anaconda를 사용하면 혜택을 누릴 수 있지만 기본 설치에는 NumPy, SciPy, Pandas 및 Matplotlib와 같은 500 개 이상의 수학 및 과학 패키지가 포함 되며 miniconda는 Anaconda-Python 및 conda 환경 관리자 만 설치합니다. 아나콘다는 개인 프로필로 설치 예 : /home/<user>/변경합니다 귀하 ~/.bashrc또는 ~/.bash_profile귀하의 개인에 아나콘다의 경로를 씁니다을 $PATH 소싱하는 것이 좋습니다conda.sh당신에 ~/.bashrc있는 당신이 사용할 수 있습니다 conda activate <env|default is base>아나콘다를 시작합니다 - 이것은 단지에 영향 - 시스템 경로가 변경되지 않습니다 . 따라서 루트 액세스 권한이나 Anaconda를 사용할 필요 없습니다sudo ! Anaconda-Python, miniconda 또는 conda를 개인 경로에 이미 추가 한 경우,에서 PATH내보내기를 제거 ~/.bashrc하고 새 권장 사항으로 업데이트 해야 시스템 Python이 다시 시작됩니다.

이것은 --user패키지뿐만 아니라 파이썬 전체에 적용된다는 점을 제외하고 마지막 섹션에서 설명한 옵션 과 다소 유사 합니다. 따라서 Anaconda는 시스템 Python완전히 분리되어 시스템 Python을 방해하지 않으며 사용하거나 변경할 수만 있습니다. 새로운 버전의 Python과 모든 라이브러리를 설치하기 때문에 최소한 200MB의 공간이 필요하지만 Anaconda로 할 수있는 멋진 일에 중요한 라이브러리 캐싱 및 관리에 대해서는 매우 영리합니다.

Anaconda는 온라인 리포지토리 (이전의 binstar ) 에서 종속성에 필요한 Python 바이너리 및 라이브러리의 모음을 처리하고 사용자 패키지를 다른 "채널"로 호스팅합니다. Anaconda에서 사용하는 패키지 관리자 conda는 기본적으로 Anaconda에서 패키지를 설치하지만 -c옵션을 사용하여 다른 "채널"을 표시 할 수 있습니다.

다음과 conda같이 패키지를 설치하십시오 pip.

$ conda install -c pvlib pvlib  # install pvlib pkg from pvlib channel

그러나 conda훨씬 더 많은 일을 할 수 있습니다! 또한 가상 환경을 만들고 관리 할 수 ​​있습니다 virtualenv. 따라서 Anaconda는 가상 환경을 생성하므로 pip패키지 관리자를 사용하여 루트 또는 sudo. 없이 PyPI에서 Anaconda 환경으로 패키지를 설치할 수 있습니다 . 마십시오 하지 사용 sudo아나콘다와 함께! 경고! 혼합 할 때하지만 조심 함 pipconda아나콘다 환경에서, B / 더주의 깊게 패키지 종속성을 관리해야합니다 c를. pipconda 환경에서 사용할 수 있는 또 다른 옵션 은 conda-forge 채널 을 사용하는 것입니다.conda-forge를 기본 채널로 사용하여 신선한 콘다 환경에서 수행하는 것이 가장 좋습니다. 최후의 수단으로 PyPI 이외의 곳에서는 패키지를 찾을 수 없으면를 사용 --no-deps하고 나머지 종속성을 수동으로 설치하십시오 conda.

Anaconda는 그 도구에 익숙하다면 어떤면에서 Ruby RVM 과 유사 합니다. Anaconda conda를 사용하면 다른 버전의 Python으로 가상 환경을 만들 수도 있습니다 . : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn라는 새로운 환경에서 Python-3.5를 사용하여 과학 / 데이터 과학 스택을 만듭니다 py35sci. 을 사용하여 환경을 전환 할 수 있습니다 conda. CONDA-4.4.0 때문에, 이것은 지금 다른virtualenv있는 사용 source venv/bin/activate을하지만, 이전 CONDA-4.4.0conda 명령이 있었다 동일virtualenv도 사용 source:

# AFTER conda-4.4 
~/Projects/myproj $ conda activate py35sci

# BEFORE conda-4.4 
~/Projects/myproj $ source activate py35sci

그러나 더 기다립니다! Anaconda는 Anaconda 채널 에서 통계 프로그래밍위해 R 과 같은 다른 언어를 설치할 수도 있습니다 . conda 용으로 제작 된 패키지 배포판을 업로드하도록 자체 채널을 설정할 수도 있습니다 . 언급 한 바와 같이 conda-forgeconda-forge Anaconda 채널 에서 PyPI에있는 많은 패키지의 자동화 된 빌드를 유지 합니다 .r

발문

개인의 요구와 액세스에 따라 Linux에서 Python 프로젝트를 유지 관리하기위한 많은 옵션이 있습니다. 그러나이 답변에서 제외하고 싶은sudo 것은 Python 패키지를 설치 하는 거의 사용할 필요 가 없다는 입니다. 의 사용은 sudo해야 냄새 뭔가가 어긋 나서 당신에. 경고를 받았습니다.

행운과 행복한 코딩!


sudo와 함께 사용 하여 시스템의 파이썬 배포판을 파괴하기 전에 이것을 읽으십시오 pip. 이 글에 감사드립니다.
slhck

pip install numpy모든 종속성을 설치해야합니다
Timo

PEP 513PyPI 에서 구현되어 PEP 513 이 구현 된 이후 2017-03-27 업데이트에서 언급 한 @TimoOpenBLAS 로 빌드 된 PyPI에서 사용할 수 있습니다. , 필요한 종속성이 있습니다. 그러나 일반적 pip install <package>으로의 install_requires섹션에 나열된 Python 패키지 종속성 만 설치 setup.py합니다. 예를 들어 : Jupyter를 설치하면 Jukter 노트북을 LaTeX로 내보내는 Haskell 라이브러리 pandoc 가 설치되지 않습니다.
Mark Mikofski

대조적으로 conda install <package>C / C ++, FORTRAN 등 Haskell 라이브러리를 포함한 모든 종속성을 설치할 것입니다. conda는 pip와 같은 Python 패키지를 관리하는 것이 아니라 환경을 관리하기 때문입니다. 따라서 Anaconda 또는 miniconda가 있다면 pandoc Haskell 라이브러리를 포함 하여 레시피 파일 conda install Jupyter 모든 것을 설치합니다 . 자세한 내용은 PyPAmeta.yml
Mark Mikofski

10

Novarchibald의 추가 외에도 일반적으로 파이썬 프로젝트를위한 가상 환경을 생성하고 내부에 의존성을 설치하는 것이 좋습니다. 이를 통해 종속성 및 해당 버전을보다 잘 제어 할 수 있습니다. 가상 환경을 설정하려면 다음을 입력하십시오.

virtualenv --no-site-packages --distribute my_python_project

그런 다음 다음을 사용하여 활성화하십시오.

cd my_python_project
source bin/activate

이 시점에서 pip로 설치 한 것은이 가상 환경 안에 유지됩니다. 전 세계에 무언가를 설치하려면 먼저 다음을 사용하여 virtualenv를 종료해야합니다.

deactivate

virtualenv에 대한 자세한 내용은 여기를 참조 하십시오 .


1
또는 virtualenv bin 디렉토리 (여기서는 my_python_project / bin / pip)에서 pip를 사용하여 "활성화"할 필요없이 해당 환경을 유지하십시오. 그런 다음-bin에 설치된 스크립트를 사용하면 virutalenv가 제공됩니다. "activate"는 virtualenv 특정 저장소를 사용하여 "python", "easy_install"및 "pip"를 호출 할 때만 편리합니다.
Jan Vlcinsky

파이썬의 설치 문서는 "pyvenv"를 사용하여 프로젝트에 특정한 가상 환경을 만듭니다. 그러나 그 virtualenv는 이전 파이썬 버전 docs.python.org/3/installing/index.html?highlight=pip를 사용하는 프로젝트의 대체품 입니다.
pbhj 1

2
있습니다 virtualenv옵션 --no-site-packages--distribute현재 사용되지 않으며 더 이상 아무런 효과가 없습니다.
마초

4

Zetah'a 답변 외에도 터미널에서 python-pip를 설치하는 명령은 다음과 같습니다.

sudo apt-get install python-pip

1

이 시도 PIP에 대한 GUI 프레임 워크는 PyQt4를 사용하여 개발

PyQt4를 사용하여 개발 된 PIP 용 GUI 프레임 워크

시작 화면

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

시작 화면에는 사용자가 수행하고자하는 프로세스를 선택할 수있는 옵션이 있습니다.

작업을 수행하려는 Python 버전을 지정할 수도 있습니다.

파일 메뉴에는 "종료"(바로 가기 : Ctrl + Q) 및 "목록 새로 고침"옵션이있어 패키지 데이터가 포함 된 리소스 파일을 새로 고칩니다.

설치 화면

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

설치 화면에는 사용자가 원하는 패키지를 검색하고 설치하는 데 사용할 수있는 검색 막대가 있습니다.

업데이트 화면

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

업데이트 화면에 오래되어 업그레이드 할 수있는 패키지 목록이 표시됩니다.

제거 방법

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

설치 제거 화면에 사용자 시스템에 설치되어 있으며 설치 제거 할 수있는 패키지 목록이 표시됩니다.

진행률 창

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

진행률 창은 작업을 수행하는 동안 실행중인 프로세스를 표시하는 PIP-GUI 용 내장 터미널 위젯입니다.


1
Ask Ubuntu에 오신 것을 환영합니다! 이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Kevin Bowen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.