아치에 파이썬 패키지를 설치하는 권장 방법은 무엇입니까? AUR에서 검색 한 후 설치하거나 PKGBUILD
패키지를 직접 만들 파일을 만들거나 pip
?
나는 pacman과 AUR에서 물건을 설치하는 것으로 시작했으며 pip
패키지 와 혼합하는 것이 현명한 지 모르겠습니다 .
답변
모든 사용자에게 파이썬 패키지가 필요하지 않은 경우 다음과 같이 가정에 설치할 수 있습니다.
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
배경 설명 : /opt
gnu / linux 배포판에서 로컬 사용자 나 시스템 관리자가 자신의 것을 설치할 수있는 디렉토리로 일반적으로 인정됩니다. 다시 말해, 배포판의 패키지 관리자는 일반적으로 만지지 않습니다 /opt
. 이것은 파일 시스템 계층 표준에서 다소 표준화되었습니다.
사용자에게 편의를 위해 래퍼 스크립트를 작성하여 /bin
또는에 배치하려고합니다 /usr/bin
. 여전히 배포 패키지 관리자와 충돌 할 위험이 있지만 적어도 하나의 래퍼 스크립트 파일 일뿐입니다. 따라서 수행 할 수있는 피해는 최소화됩니다. 랩퍼 스크립트의 이름을 분배 패키지 관리자와 충돌 local-foo
하거나 custom-foo
충돌 위험을 최소화하기 위해 지정할 수 있습니다 .
또는 랩퍼 스크립트 PATH
를 포함 /opt/bin
하고 배치 하도록 수정할 수 있습니다 . 그러나 다시 PATH
배포 패키지 관리자가 덮어 쓸 수있는 시스템 파일 (또는 일부)을 수정해야합니다 .
한마디로 : 모든 사용자를 위해 설치하려면에서 설치하십시오 /opt
. 편안한 래퍼 스크립트를 배치 할 위치는 판단 요청입니다.
/opt
파일 시스템 계층 표준 에 대한 추가 정보 :
답변
일반적으로 배포판에서는 배포판의 패키지 관리자를 사용하는 것이 좋습니다. 물론 pip (또는 펄 세계에서는 cpan)를 사용하여 설치하거나 직접 컴파일하여 설치할 수 있습니다. 그러나이 작업을 수행 할 때 배포판의 패키지 관리자는 해당 패키지 관리자에 대해 알지 못하며 의존성 또는 업데이트를 관리 할 수 없습니다.
pip를 사용하는 것은 자신의 패키지를 컴파일하고 설치하는 것과 거의 같습니다. 필요하다면 배포판의 패키지 관리자를 선호하십시오.
답변
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
:
이 규칙을 따르면 ArchLinux는 중단되지 않으며 PACMAN과 PIP간에 종속성 문제가 없습니다.
도움이 되길 바랍니다.
답변
특정 패키지 (내가 해킹하고 싶지 않은 패키지)의 경우 다음을 사용하여 자체 패키지를 만듭니다.
https://github.com/bluepeppers/pip2arch
그런 다음 생성 된 PKGBUILD를 빌드하고 설치하십시오.
수정하거나 해킹하려는 패키지에 대해 virtualenvs를 남겨 둡니다.
답변
여기에 다른 답변 외에도 python-virtualenv
패키지를 확인하십시오 . 버전 번호가 일치하지 않는 종속성이 다른 여러 프로젝트에서 개발하는 경우 매우 유용 할 수 있습니다.
https://wiki.archlinux.org/index.php/Python_VirtualEnv
또한 pip와 virtualenv의 두 가지 변형이 있습니다. 하나는 Python 2와 하나는 Python 3입니다. 구문 오류로 설치에 실패하면 잘못된 버전으로 시도한 것일 수 있습니다.