아치에 파이썬 패키지를 설치하는 권장 방법


37

아치에 파이썬 패키지를 설치하는 권장 방법은 무엇입니까? AUR에서 검색 한 후 설치하거나 PKGBUILD패키지를 직접 만들 파일을 만들거나 pip?

나는 pacman과 AUR에서 물건을 설치하는 것으로 시작했으며 pip패키지 와 혼합하는 것이 현명한 지 모르겠습니다 .

답변:


34

모든 사용자에게 파이썬 패키지가 필요하지 않은 경우 다음과 같이 가정에 설치할 수 있습니다.

pip install --user packagename

가정에 설치해도 패키지 관리자와 충돌하지 않습니다.

기본적으로 pip install --user"사용자 사이트"디렉토리에 설치됩니다. 일반적으로 다음과 같습니다./home/lesmana/.local/lib/python3.6/site-packages ..

다음 명령은 무엇보다도 "사용자 사이트"위치를 인쇄합니다.

python -m site

설치 위치를 사용자 정의하려면 다음을 수행하십시오.

PYTHONUSERBASE=$HOME/some/dir pip install --user packagename

이것은 아래에 모든 것을 설치합니다 $HOME/some/dir

실행하려면 :

PYTHONUSERBASE=$HOME/some/dir $HOME/some/dir/bin/progname

자세한 내용 은 pip 설명서 를 참조하십시오.


모든 사용자에게 파이썬 패키지를 원한다면 설치하기 가장 좋은 곳은 /opt입니다. 예를 들면 다음과 같습니다.

PYTHONUSERBASE=/opt/packagedir pip install packagename

(누락에 주목 --user)

위와 같이 실행하십시오.

PYTHONUSERBASE=/opt/packagedir /opt/packagedir/bin/progname

배경 설명 : /optgnu / linux 배포판에서 로컬 사용자 나 시스템 관리자가 자신의 것을 설치할 수있는 디렉토리로 일반적으로 인정됩니다. 다시 말해, 배포판의 패키지 관리자는 일반적으로 만지지 않습니다 /opt. 이것은 파일 시스템 계층 표준에서 다소 표준화되었습니다.

사용자에게 편의를 위해 래퍼 스크립트를 작성하여 /bin또는에 배치하려고합니다 /usr/bin. 여전히 배포 패키지 관리자와 충돌 할 위험이 있지만 적어도 하나의 래퍼 스크립트 파일 일뿐입니다. 따라서 수행 할 수있는 피해는 최소화됩니다. 랩퍼 스크립트의 이름을 분배 패키지 관리자와 충돌 local-foo하거나 custom-foo충돌 위험을 최소화하기 위해 지정할 수 있습니다 .

또는 랩퍼 스크립트 PATH를 포함 /opt/bin하고 배치 하도록 수정할 수 있습니다 . 그러나 다시 PATH배포 패키지 관리자가 덮어 쓸 수있는 시스템 파일 (또는 일부)을 수정해야합니다 .

한마디로 : 모든 사용자를 위해 설치하려면에서 설치하십시오 /opt. 편안한 래퍼 스크립트를 배치 할 위치는 판단 요청입니다.

/opt파일 시스템 계층 표준 에 대한 추가 정보 :


IMHO는 virtualenvs 설정에 대한 포인터와 함께 받아 들여 져야합니다.
ttsiodras

1
어. 핑핑 일 python전에 이것을 알고 싶습니다 sudio. 고마워
Hendy

모든 사용자에게 파이썬 패키지 필요한 경우 어떻게 해야합니까?
Mehrdad

@Mehrdad 업데이트 답변
lesmana

@ lesmana : 감사합니다! 그러나 이것이 권장되는 방법이라고 확신합니까? 이것은 내가 누군가가 파이썬에 / opt를 사용하도록 제안한다고 들었을 때 처음이다 ...
Mehrdad

9

일반적으로 배포판에서는 배포판의 패키지 관리자를 사용하는 것이 좋습니다. 물론 pip (또는 펄 세계에서는 cpan)를 사용하여 설치하거나 직접 컴파일하여 설치할 수 있습니다. 그러나이 작업을 수행 할 때 배포판의 패키지 관리자는 해당 패키지 관리자에 대해 알지 못하며 의존성 또는 업데이트를 관리 할 수 ​​없습니다.

pip를 사용하는 것은 자신의 패키지를 컴파일하고 설치하는 것과 거의 같습니다. 필요하다면 배포판의 패키지 관리자를 선호하십시오.


2
당신은 절대적으로 사용하지 않아야합니다 pip(적어도 전역 적으로 sudo또는 루트로)- 일부 종속성을 설치하려고 할 site-package/...때 이미 일부 오류가 발생 pacman했습니다.
Tobias Kienzler

나도 그런 오류가 발생했습니다. 모든 pip3 패키지를 업그레이드 한 후 pacman은 충돌로 인해 시스템 업그레이드를 거부했습니다. pip3과 pacman을 통해 해당 패키지를 제거 한 다음 시스템 업그레이드를 수행하고 마지막으로 패키지를 다시 설치해야합니다 (물론 pacman을 사용하십시오).
Al.G.

8

ArchLinux를위한 올바른 방법

ArchLinux에 PYTHON 패키지를 설치하는 올바른 방법은 PACMAN을 사용하는 것입니다! Python3에 패키지를 설치하려면 사용해야합니다

sudo pacman -S python-'package'

Python2에서 패키지를 설치하려면 사용해야합니다

sudo pacman -S python2-'package'

대부분의 파이썬 패키지는 ArchLinux 저장소에 있으며 AUR에없는 패키지 (ArchLinux 사용자 저장소)-이 패키지의 경우 PKGBUILD 파일을 다운로드하고 컴파일해야합니다. 그런 다음 PACMAN을 사용하여 설치를 완료해야합니다.

makepkg -s
sudo pacman -U 'compiled-package'

ArchLinux에 대한 두 번째 올바른 방법

패키지가 AUR에 없거나 PKGBUILD가 작동하지 않으면 PIP를 사용하여 Python3에 설치할 수 있습니다

sudo pip install 'python-package'

또는 Python2

sudo pip2 install 'python-package'

당신은 기회를 줄 수 virtualenv 주거나conda

Arch에서는 VirtualEnvironments를 사용할 수도 있습니다. 이를 통해 코드에 이식성을 제공하고 이전 패키지도 유지할 수 있습니다. 함께 설치

sudo pacman -S python-virtualenv

그리고 이것을 시도하십시오

virtualenv -p /usr/bin/python3 yourenv
source yourenv/bin/activate
pip install package-name

이 환경을 만들면 yourenv설정됩니다pip 전체 시스템이 아닌이 환경에만 패키지를 설치하도록 됩니다.

이 다른 링크는 Linux에서 conda또는virtualenv :

Jupyter 노트북에서 Python 패키지 설치

ArchLinux에서 코드 파이썬

이 규칙을 따르면 ArchLinux는 중단되지 않으며 PACMAN과 PIP간에 종속성 문제가 없습니다.

도움이 되길 바랍니다.



1

여기에 다른 답변 외에도 python-virtualenv패키지를 확인하십시오 . 버전 번호가 일치하지 않는 종속성이 다른 여러 프로젝트에서 개발하는 경우 매우 유용 할 수 있습니다.

https://wiki.archlinux.org/index.php/Python_VirtualEnv

또한 pip와 virtualenv의 두 가지 변형이 있습니다. 하나는 Python 2와 하나는 Python 3입니다. 구문 오류로 설치에 실패하면 잘못된 버전으로 시도한 것일 수 있습니다.

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