[python] pip, virtualenv를 설치하고 Python에 배포하는 올바른 방법은 무엇입니까?

짧은 질문

배경

에서 내 대답SO 질문 4314376 , 내가 사용하는 것이 좋습니다 ez_setup당신이 다음 설치할 수 있도록 pip하고 virtualenv다음과 같이 :

curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
sudo pip install virtualenv

나는 Jesse Noller의 블로그 게시물 에서이 지침을 가져 왔습니다. 그래서 Mac에서 Python을 사용하고 싶습니까? . 내가 거기를 설치하는 유일한 다른 패키지 있도록 깨끗하고 글로벌 사이트 패키지 디렉토리를 유지의 생각처럼 내가있다 virtualenvwrapperdistribute. (최근 이 파이썬 공공 서비스 발표distribute 때문에 도구 상자 에 추가 했습니다 .이 두 패키지를 설치하려면 다음을 사용했습니다.

sudo pip install virtualenvwrapper
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py

더 이상 setuptools 및 easy_install

파이썬 공공 서비스 발표 를 실제로 따르기 위해 새로 파이썬을 설치하면 다음을 수행합니다.

curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper

글리프의 책망

에 대한 댓글에서 내 대답SO 질문 4314376 , SO 사용자 문양 말했다 :

아니. 절대로 아무것도하지 마십시오 sudo python setup.py install. pip 설치를 ~ / .local 또는 다른 곳에 넣는 ~ / .pydistutils.cfg를 작성하십시오. 특히 이름 ez_setup.py이 지정된 파일은 setuptools 및 easy_install과 같은 최신 버전의 버전을 빨아들이는 경향이 있으며 운영 체제의 다른 항목을 손상시킬 수 있습니다.

짧은 질문으로 돌아 가기

그래서 Glyph의 답변 은 저의 원래 질문으로 이어집니다.



답변

파이썬 자체에 아무것도 설치하지 않고도이 작업을 수행 할 수 있습니다 .

sudo 나 권한이 필요하지 않습니다.

파일을 편집 할 필요가 없습니다.

부트 스트랩 가상 환경에 virtualenv를 설치하십시오. 그 가상 환경을 사용하여 더 많은 것을 만드십시오. virtualenv는 pip 및 distribution과 함께 제공되므로 한 번의 설치로 모든 것을 얻을 수 있습니다.

  1. virtualenv 다운로드 :
  2. 소스 타르볼 포장 풀기
  3. 압축이 풀린 tarball을 사용하여 깨끗한 가상 환경을 만듭니다. 이 가상 환경은 다른 환경을 “부트 스트랩”하는 데 사용됩니다. 모든 가상 환경은 자동으로 pip를 포함하고 배포합니다.
  4. pip를 사용하여 해당 부트 스트랩 환경에 virtualenv를 설치하십시오.
  5. 부트 스트랩 환경을 사용하여 더 많은 것을 만드십시오!

bash의 예는 다음과 같습니다.

# Select current version of virtualenv:
VERSION=12.0.7
# Name your first "bootstrap" environment:
INITIAL_ENV=bootstrap
# Set to whatever python interpreter you want for your first environment:
PYTHON=$(which python)
URL_BASE=https://pypi.python.org/packages/source/v/virtualenv

# --- Real work starts here ---
curl -O $URL_BASE/virtualenv-$VERSION.tar.gz
tar xzf virtualenv-$VERSION.tar.gz
# Create the first "bootstrap" environment.
$PYTHON virtualenv-$VERSION/virtualenv.py $INITIAL_ENV
# Don't need this anymore.
rm -rf virtualenv-$VERSION
# Install virtualenv into the environment.
$INITIAL_ENV/bin/pip install virtualenv-$VERSION.tar.gz

이제 “부트 스트랩”환경을 사용하여 더 많은 것을 만들 수 있습니다.

# Create a second environment from the first:
$INITIAL_ENV/bin/virtualenv py-env1
# Create more:
$INITIAL_ENV/bin/virtualenv py-env2

가자!

노트

이전 버전의 virtualenv를 사용하고 있지 않다고 가정합니다. 이전 버전에는 플래그가 필요했습니다 --no-site-packges(Python 버전에 따라 --distribute). 이제 python virtualenv.py path-to-bootstrap또는으로 부트 스트랩 환경을 만들 수 있습니다 python3 virtualenv.py path-to-bootstrap.


답변

나는 글리프가 다음과 같은 것을 의미한다고 생각한다.

  1. 디렉토리 ~/.local가 없으면 작성하십시오 .
  2. 당신에 ~/.bashrc, 그 보장 ~/.local/binPATH그것은 ~/.local에 있습니다 PYTHONPATH.
  3. ~/.pydistutils.cfg포함 된 파일 만들기

    [install]
    prefix=~/.local
    

    표준 ConfigParser 형식 파일입니다.

  4. 다운로드 distribute_setup.py 하여 실행하십시오 python distribute_setup.py(아니요 sudo). 존재하지 않는 site-packages디렉토리 에 대해 불평하는 경우 수동으로 작성하십시오.

    mkdir -p ~ / .local / lib / python2.7 / site-packages /

  5. 실행 which easy_install중인지 확인하기 위해 실행~/.local/bin

  6. 운영 pip install virtualenv
  7. 운영 pip install virtualenvwrapper
  8. 폴더를 포함하는 가상 환경을 만듭니다 (예 : ~/.virtualenvs
  9. ~/.bashrc추가

    export WORKON_HOME
    source ~/.local/bin/virtualenvwrapper.sh
    

그것은 전혀 사용하지 않으며 sudo파이썬 환경은 ~/.localOS의 파이썬과 완전히 분리되어 있습니다. 면책 조항 : virtualenvwrapper이 시나리오에서 얼마나 호환되는지 확실 하지 않습니다-내 시스템에서 테스트 할 수 없었습니다 🙂


답변

이 답변에 링크 된 여러 자습서에서 권장되는 단계 를 따르면 Walker 및 Vinay의 답변에서 다소 복잡한 “수동”단계없이 원하는 효과를 얻을 수 있습니다. Ubuntu를 사용하는 경우 :

sudo apt-get install python-pip python-dev

OS X에서 homebrew를 사용하여 Python을 설치하면 이에 해당합니다 (자세한 내용은 여기 참조 ).

brew install python

으로 pip설치, 당신은 (당신은 생략 할 수 있습니다 나머지 패키지를 얻을하는 데 사용할 수 있습니다 sudo로컬 파이썬 설치를 사용하는 등, OS X에서)를.

sudo pip install virtualenvwrapper

(이 패키지는 전 세계적으로 설치 해야하는 유일한 패키지이며 OS의 시스템 수준과 충돌 할 것이라고 의심됩니다. 안전을 원한다면 배포판 버전을 유지할 수 있습니다 sudo apt-get install virtualenvwrapper)

참고 : Ubuntu 14.04 에서는 pip install과 관련된 오류가 발생하여 파일 을 사용 pip3 install virtualenv virtualenvwrapper하고 추가 합니다.VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.bashrc/.zshrc

그런 다음 .bashrc파일에 추가 하십시오.

export WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh

그리고 그것을 소스

. ~/.bashrc

이것은 기본적으로입니다. 이제 유일한 결정은 시스템 레벨 패키지를 포함하기 위해 virtualenv를 작성할지 여부입니다.

mkvirtualenv --system-site-packages foo

기존 시스템 패키지를 다시 설치할 필요가없는 경우 시스템 인터프리터 버전과 심볼릭 링크됩니다. 참고 : sudo 없이도 새 패키지를 설치하고 기존 포함 된 시스템 패키지를 업그레이드 할 수 있습니다. 테스트 한 결과 시스템 인터프리터가 중단되지 않고 작동합니다.

kermit@hocus-pocus:~$ sudo apt-get install python-pandas
kermit@hocus-pocus:~$ mkvirtualenv --system-site-packages s
(s)kermit@hocus-pocus:~$ pip install --upgrade pandas
(s)kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.10.1
(s)kermit@hocus-pocus:~$ deactivate
kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.8.0

완전히 분리 된 환경을 원한다면 대안은

mkvirtualenv --no-site-packages bar

또는 이것이 기본 옵션 인 경우 간단히

mkvirtualenv bar

결과적으로 즐겨 사용하는 패키지를 자유롭게 그리고 무의식적으로 설치할 수있는 새로운 virtualenv가 있습니다.

pip install flask


답변

파이썬 3.4 이후

Python 3.3은 venv 모듈을 추가 하고 Python 3.4는 ensurepip 모듈을 추가합니다 . 이것은 부트 스트랩 핍을 다음과 같이 쉽게 만듭니다.

python -m ensurepip

venv가상 환경 내에서 호출해야 할 수도 있습니다.

보장 된 핍은 PEP 453에 설명되어 있습니다.


답변

우분투에서 :

sudo apt-get install python-virtualenv

패키지 python-pip는 종속성이므로 설치됩니다.


답변

직장에서 사용할 수 있도록이 절차를 만들었습니다.

cd ~
curl -s https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz | tar xvz
cd pip-1.3.1
python setup.py install --user
cd ~
rm -rf pip-1.3.1

$HOME/.local/bin/pip install --user --upgrade pip distribute virtualenvwrapper

# Might want these three in your .bashrc
export PATH=$PATH:$HOME/.local/bin
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--distribute"
source $HOME/.local/bin/virtualenvwrapper.sh

mkvirtualenv mypy
workon mypy
pip install --upgrade distribute
pip install pudb # Or whatever other nice package you might want.

보안을위한 요점 :

  1. curl은 SSL 유효성 검사를 수행합니다. wget하지 않습니다.
  2. pip 1.3.1부터 pip는 ssl 유효성 검사도 수행합니다.
  3. 더 적은 사용자가 github tarball보다 pypi tarball을 업로드 할 수 있습니다.

답변

업데이트 : 2013 년 7 월 현재이 프로젝트는 더 이상 유지되지 않습니다. 저자는 pyenv 사용을 제안 합니다. (pyenv는 virtualenv를 기본적으로 지원하지 않지만 잘 작동합니다.)

Pythonbrew 는 Python의 버전 관리자이며 virtualenv를 지원합니다.

venvs를 사용하여 pythonbrew와 python-version을 설치하면 정말 쉽습니다.

# Initializes the virtualenv 
pythonbrew venv init

# Create a virtual/sandboxed environment 
pythonbrew venv create mycoolbundle

# Use it 
pythonbrew venv use mycoolbundle