루트 액세스없이 파이썬 모듈을 설치하는 방법은 무엇입니까?


220

나는 몇 가지 대학 수업을 받고 있으며 '교육용 계정'을 받았는데, 이는 일을하기 위해 ssh 할 수있는 학교 계정입니다. 컴퓨터에서 계산 집약적 인 Numpy, matplotlib, scipy 코드를 실행하고 싶지만 시스템 관리자가 아니기 때문에 이러한 모듈을 설치할 수 없습니다.

설치는 어떻게합니까?


14
설치하려는 패키지에 대해 --user 또는 --prefix를 setup.py로 전달하여 로컬로 설치할 수 있습니다. 참조 파이썬 모듈 alertnative 설치
arunkumar

답변:


306

대부분의 상황에서 가장 좋은 해결책은 다음을 실행하여 소위 "사용자 사이트"위치 (자세한 내용은 PEP 참조)에 의존 하는 것입니다.

pip install --user package_name

아래는 내 원래의 대답에서보다 "수동적 인"방법입니다. 위의 해결책이 효과가 있다면 그것을 읽을 필요가 없습니다.


easy_install을 사용하면 다음을 수행 할 수 있습니다.

easy_install --prefix=$HOME/local package_name

어느 곳에 설치

$HOME/local/lib/pythonX.Y/site-packages

( 'local'폴더는 많은 사람들이 사용하는 일반적인 이름이지만 물론 쓰기 권한이있는 폴더를 지정할 수도 있습니다).

수동으로 만들어야합니다

$HOME/local/lib/pythonX.Y/site-packages

PYTHONPATH환경 변수에 추가하십시오 (그렇지 않으면 easy_install이 불평합니다-btw는 위의 명령을 한 번 실행하여 XY의 올바른 값을 찾습니다).

를 사용하지 않는 경우 easy_install접두사 옵션을 찾으십시오. 대부분의 설치 스크립트에서이를 지정할 수 있습니다.

pip를 사용하면 다음을 사용할 수 있습니다.

pip install --install-option="--prefix=$HOME/local" package_name

1
파이썬은 무엇을 가지고 있지 않은 경우 pipeasy_install사용할 수?
Girardi

설치가 잘되었지만 (pip 방법) package_name 가져 오기가 작동하지 않습니다. 일부 구성을 변경 / 추가해야합니까? 또한 설치는 어디에 (폴더 방식으로) 복사 되었습니까?
idoda

2
// @AnotherDayAnotherRob, 좋은 질문 처럼 들립니다 .
Nathan Basanese

2
답을 업데이트 --user하고 맨 위에 지시를하는 것이 이치에
맞습니다

1
@Girardi src에서 로컬 디렉토리 / my_python /으로 python을 설치 한 경우 먼저 다음 위치에서 pip를이 위치에 설치하는 것이 좋습니다. wget --no-check-certificate bootstrap.pypa.io/get-pip.py -O-| / my_python / bin / python-pip + 접두사를 사용하여 다른 모듈을 설치할 수 있습니다
teng_wenxuan

51

액세스하거나 설치할 수있는 권한이 easy_install없습니까?

그런 다음, 파이썬 virtualenv( https://pypi.python.org/pypi/virtualenv )을 작성 하고이 가상 환경에서 패키지를 설치할 수 있습니다.

셸에서 4 개의 명령을 실행하면 충분합니다 (XXX의 경우 16.1.0과 같은 현재 릴리스 삽입).

$ curl --location --output virtualenv-X.X.X.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xvfz virtualenv-X.X.X.tar.gz
$ python pypa-virtualenv-YYYYYY/src/virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install package_name

출처 및 추가 정보 : https://virtualenv.pypa.io/en/latest/installation/


1
이 답변은 pip설치 되지 않은 시스템에서 유용했습니다 .
Dan Stowell

로컬 파이썬 설치에 대한 변형을 시도했습니다. curl --silent --show-error --retry 5 bootstrap.pypa.io/get-pip.py | ~ / Python-2.7.8 / python
Neerav

3
소스가 이동 한 것으로 보이며 위의 기능이 작동하지 않습니다. https://virtualenv.pypa.io/en/latest/installation/그래도 잘 작동 하는 비슷한 지침 :)
Andras Deak

13

root 액세스 없이도 easy_install을 실행하여 홈 디렉토리에 Python 패키지를 설치할 수 있습니다. $ HOME / .local 또는 $ HOME / Library / Python / 2.7 / bin과 같이 기본적으로 PYTHONPATH에 포함되는 site.USER_BASE를 사용하여이를 수행하는 표준 방법이 있습니다.

이렇게하려면 홈 디렉토리에 .pydistutils.cfg를 작성하십시오.

cat > $HOME/.pydistutils.cfg <<EOF
[install]
user=1
EOF

이제 루트 권한없이 easy_install을 실행할 수 있습니다.

easy_install boto

또는 루트 액세스없이 pip를 실행할 수도 있습니다.

pip install boto

이것은 나를 위해 작동합니다.

Wesley Tanaka의 블로그 출처 : http://wtanaka.com/node/8095


1
이것은 Linux 서버에서 루트 액세스없이 설치하는 데 효과적이었습니다. 감사합니다.하지만 왜 작동했는지 전혀 모르겠습니다. 어떤 몸이라도 힌트를 줄 수 있습니까?
ChathuraG

9

distutils setup.py스크립트 를 사용해야하는 경우 설치 대상을 강제 실행하기위한 몇 가지 명령 줄 옵션이 있습니다. http://docs.python.org/install/index.html#alternate-installation을 참조 하십시오 . 이 문제가 반복되면 distutils 구성 파일을 설정할 수 있습니다 ( http://docs.python.org/install/index.html#inst-config-files 참조) .

PYTHONPATH 변수 설정은 tihos post에 설명되어 있습니다.


1
고마워 lxmlpython <lxml_distrib_dir>/setup.py install --home=<dir>
Serge S를

6

중요한 질문입니다. 내가 사용하는 서버 (Ubuntu 12.04)에는 easy_install3있지만 없습니다 pip3. 이것이 Pip과 다른 패키지를 홈 폴더에 설치 한 방법입니다.

  1. 관리자에게 Ubuntu 패키지 설치 요청 python3-setuptools

  2. 설치된 핍

이처럼 :

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
  1. Pip (및 다른 Python 앱을 경로에 추가)

이처럼 :

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
  1. 파이썬 패키지 설치

이처럼

pip3 install --user httpie

# test httpie package
http httpbin.org

4

나는 기본적으로 $ HOME / .juju 디렉토리 안에 아주 작은 리눅스 배포판 (패키지 관리자 만 포함)을 허용 하는 JuJu 를 사용합니다.

proot를 통해 홈 디렉토리 내에 사용자 정의 시스템을 액세스 할 수 있으므로 루트 권한없이 모든 패키지를 설치할 수 있습니다. 모든 주요 Linux 배포판에서 제대로 실행되지만 유일하게 제한되는 것은 JuJu가 권장되는 최소 버전 2.6.32로 Linux 커널에서 실행될 수 있다는 것입니다.

예를 들어, JuJu를 설치하여 pip를 설치 한 후 다음을 입력하십시오.

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip


1

virtualenv를 로컬로 설치하십시오 ( 명령 소스 ) :

중요 : XXX 의 현재 릴리스 (예 : 16.1.0 )를 삽입하십시오 . 추출 된 파일의 이름을 확인하고 YYYYY에 삽입하십시오 .

$ curl -L -o virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xfz virtualenv.tar.gz
$ python pypa-virtualenv-YYYYY/src/virtualenv.py env

가상 파이썬 환경에 필요한 패키지를 사용 하거나 설치 하기 전에 :sourceenv

$ source env/bin/activate

numpy와 같은 새로운 파이썬 패키지를 설치하려면 다음을 사용하십시오.

(env)$ pip install <package>

이것은 기본적으로 tremendows 명령어 의 업데이트 된 버전입니다 . 그의 지시는 구식이다. 편집이 거부되었습니다. 그 때문에 나는 그것을 새로운 지시로 게시했습니다.
Niklas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.