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


247

짧은 질문

배경

에서 내 대답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의 답변 은 저의 원래 질문으로 이어집니다.


매튜, 나는이 실이 다소 오래되었다는 것을 안다. 그러나이 전선에 새로운 것이 있습니까? 그것은 할 수있는 좋은 생각이 여전히 python distribute_setup.py다음 easy_install pipvirtualenv --distribute venv? ( python-guide.readthedocs.org/en/latest/starting/install/… 참조 ) 그렇다면 그렇다면 그 이유는 무엇입니까?
Amelio Vazquez-Reina

2
잘못된에게 무엇과의 sudo apt-get install python-{pip,virtualenv}???
MestreLion

1
그렇습니다. 일반적으로 이전 버전이지만 호환되는 패키지는 마이너 버전이 사용자의 목적에 중요하지 않은 경우에는 문제가 없지만 "문제가 무엇입니까"라고 구체적으로 물어 보았습니다.

2
참고로,이 질문에 여러 링크는 지금 / 오래된 깨진 - 나는 현재에 사람을 볼 (수) pip, virtualenv및 파이썬 PSA.
Chris Sprague

1
http://python-distribute.org/distribute_setup.py404로 리디렉션 :(
jitter

답변:


173

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

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.


13
매우 일반적이며 간단한 다운로드, untar 및 python virtualenv.py TARGET_DIRECTORY동일한 작업 을 수행 하기 때문에 지루합니다 .
Sebastian Blask

3
훌륭합니다. - 나는 indpendently 시스템 패키지의 파이썬의 여러 버전에서 VIRTUALENV를 설치하는 방법에 대한 내 더 구체적인 질문에 대답하는 데 적응 stackoverflow.com/questions/6812207/... - 완벽하게 작동합니다.
david.libremone

6
참고 : 현재 virtualenv에는 '-사이트 패키지 없음-배포'옵션이 필요하지 않습니다. 반대가 --system-site-packages필요할 수 있습니다
JFS는

1
이 명령으로 최신 안정 타르볼을 얻을 수 있습니다 :curl -Lo virtualenv-tmp.tar.gz 'https://github.com/pypa/virtualenv/tarball/master'
Bohr

1
어디에 설치 virtualenvwrapper합니까? 문서는 특히 virtualenv에 설치하지 말 것을 경고합니다 ( 작동하는 것처럼 보입니다 ).
Aryeh Leib Taurog

21

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

  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이 시나리오에서 얼마나 호환되는지 확실 하지 않습니다-내 시스템에서 테스트 할 수 없었습니다 :-)


2
~ / .local은 약간 바보 같은 이름입니까? 루비가 똑같이하고 싶다면 어떻게해야합니까? 아마도 ~ / .python27이 더 좋을까요?
Jonathan Hartley

1
참고로, Windows에서 똑같은 작업을 시도한 결과 deploy_setup.py를 성공적으로 실행하려면 로컬 폴더 (예 : "local")와 "local \ Lib \ site-packages"를 PYTHONPATH에 모두 추가해야했습니다.
technomalogical

1
이 방법의 마지막 문제점 중 하나 : virtualenv는 .pydistutils.cfg 파일 사용과 호환되지 않습니다. 참조 github.com/pypa/virtualenv/issues/88

3
easy_install pip5 단계와 6 단계 사이에 있어야한다고 생각합니다 .
SiggyF

5
~ / .local은 PEP 370에서 온 것입니다.
Éric Araujo

16

이 답변에 링크 된 여러 자습서에서 권장되는 단계 를 따르면 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

이것은 setuptools와 배포판을 모두 설치하지 않습니까? 그리고 setuptools를 좋아하지 않는 Tkinter 및 pyopencl과 같은 패키지를 깨뜨리지 않습니까?
hobs

bashrc에서 WORKON_HOME을 null로 설정하면 venvwrapper가 합리적인 것을 사용 export WORKON_HOME="$HOME/.virtualenvs"합니까?
hobs

글쎄, 그것은 패키지 관리자가 pip가 의존한다고 말하는 것을 설치합니다. 현재 그것은 Ubuntu 와 OS X 의 setuptools입니다 ( brew install pythonpip + setuptools를 가져옵니다). 이 접근법은 나에게 잘 작동합니다. 또한 pip에 중점을 둔 것은 Python 패키지 의 미래 경로 인 것 같습니다 .
metakermit

1
WORKON_HOME기본값은 ~/.virtualenvs예입니다. /usr/local/bin/virtualenvwrapper.sh그 세트 에는 줄이 있습니다 workon_home_dir="$HOME/.virtualenvs" if [ "$workon_home_dir" = "" ].
metakermit

알았다. 감사. 배포 (pyopencl) 사용에 까다로운 모듈을 pip 설치 할 때 Ubuntu 12.04에서 간단한 접근 방식이 효과적이었습니다. 나를위한 트릭 은 활성화 된 virtualenv 내에서 pip install virtualenv virtualenv-wrapper라인을 pip install --upgrade distribute추적 한 다음 pyopencl을 설치했습니다. 또한 export PROJECT_HOME="$HOME/src"멋진 mkprojectvenv 도구 를 활성화하기 위해 bashrc에 추가 했습니다 .
호브

12

파이썬 3.4 이후

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

python -m ensurepip

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

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


10

우분투에서 :

sudo apt-get install python-virtualenv

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


1
python-virtualenv는 virtualenv와 pip를 모두 설치합니다. 그런 다음 virtualenv를 실행하여 Python 가상 환경을 만듭니다. 그리고 가상 환경 내에서 pip를 실행하여 다른 패키지를 설치하십시오.
jemeshsu

2
이것은 실제로 가장 잘못된 옵션입니다. OS에 물건을 설치하는 "적절한"방법은 OS 설치 시스템사용하는 것입니다 ! 그 후 당신은 놀 수 pipA의 바람직 virtualenv하고, 결코 사용하지 sudo중 하나에 대한
MestreLion

불행히도 OS에서 제공하는 버전에는 pip때때로 심각한 버그가 있으므로 get-pip.pypython.org 에서 제공되는 것을 사용합니다 .
RichVel

@RichVel 발생한 심각한 버그에 대해 자세히 설명해 주시겠습니까?
danielpops

1
@danielpops-한 가지 예는 Ubuntu 16.04.1의 pip 문제 이지만 특정 버전 및 사용 사례에 다른 문제가있을 수 있습니다.
RichVel

5

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

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을 업로드 할 수 있습니다.

5

업데이트 : 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

@ kermit666 감사합니다. 답변을 구식으로 표시하기 위해 선호되는 방법은 무엇입니까? 그냥 삭제 하시겠습니까?
kioopi

1
물론, 당신도 예와 답은 (당신이 권장하는 것이 pythonbrew 개념과 유사하다 내 댓글에서 링크를 따라 사람들을 위해 pyenv 사용에 대한 지시가 된 상태)을 떠나거나 더 나은 아직 편집 할 수 있습니다 업데이트 년 9 월 2013 에 의해 새로운 지침을 추가합니다. 아마도 pythonbrew는 나중에 다시 활성화 될 것이므로 이전 지침을 삭제하지 않을 것입니다. 자세한 내용은 meta를 참조하십시오 .
metakermit

에 대한 내 답변을 참조하십시오 pyenv.
RichVel

3

당신이 원하는 것이 확실하다면 sudo python setup.py install을하는 데 아무런 문제가 없습니다.

차이점은 OS의 사이트 패키지 디렉토리를 .py 파일을 복사 할 대상으로 사용한다는 것입니다.

따라서 pip를 os OS에 액세스하려면 원할 것입니다. 나는 다른 방법이 나쁘다고 말하지는 않지만 이것은 아마도 공평 할 것입니다.


1
네, 그런 식으로 사용했습니다. 그리고 얼마 후, 호출 pip freeze하면 거의 얼어 붙었습니다. 시스템 전체에 설치된 패키지 목록이 너무 길었습니다. 그 이후로 "no sudo"및 "os-wide"가 아닌 python 패키지 설치를 사용하는 것이 좋습니다.
Jan Vlcinsky


2

최근에 같은 문제가 발생했습니다. “항상 virtualenv 사용”사고 방식의 일부가되고 있으므로 내 문제는 글로벌 또는 사용자 사이트 패키지 디렉토리에 배포를 설치하지 않고 pip로 virtualenv를 설치하는 것이 었습니다. 이를 위해 배포, pip 및 virtualenv를 수동으로 다운로드했으며 각각에 대해 "python setup.py install --prefix ~ / .local / python-private"(일시적인 PYTHONPATH = ~ / .local / python-private)를 사용하여 설치 스크립트가 배포를 찾을 수 있도록). virtualenv 스크립트를 PATH에있는 다른 디렉토리로 이동하고 sys.path에서 배포 및 virtualenv 모듈을 찾을 수 있도록 편집했습니다. Tada : / usr, / usr / local 또는 사용자 사이트 패키지 디렉토리에 아무것도 설치하지 않았지만 어디에서나 virtualenv를 실행할 수 있으며 해당 virtualenv에서 pip를 얻습니다.



2

이전 OS 제공 Python 버전 위에 virtualenv 내부에서도 업그레이드 된 SSL 모듈을 설치하는 데 여러 가지 문제 (아래 참조)가 있었으므로 이제는을 사용 pyenv합니다.

pyenv 를 사용하면 새로운 Python 버전을 매우 쉽게 설치할 수 있으며 virtualenvs를 지원합니다. 다른 답변에 나열된 virtualenv의 레시피보다 훨씬 쉽게 시작할 수 있습니다 .

  • Mac에서 입력 brew install pyenv하고 Linux에서 pyenv-installer를 사용하십시오.
  • 이를 통해 내장 된 virtualenv 지원 및 Python 버전 전환 (필요한 경우)
  • Python 2 또는 3과 잘 작동하며 한 번에 많은 버전을 설치할 수 있습니다

이것은 시스템 파이썬으로부터 "새로운 파이썬"버전과 virtualenv를 격리 시키는데 아주 효과적입니다. 최신 Python (2.7.9 이후)을 쉽게 사용할 수 있기 때문에 SSL 모듈은 이미 업그레이드되었으며 물론 최신 Python 환경 설정과 마찬가지로 시스템 Python 모듈과 분리되어 있습니다.

몇 가지 훌륭한 자습서 :

pyenv-virtualenv유형 - 플러그인은 이제 내장되어 pyenv commands | grep virtualenv확인합니다. pyenv-virtualenvwrapper 플러그인을 사용하여 시작하지 않을 것입니다-pyenv에 더 통합 된 pyenv-virtualenv를 사용하는 방법을 참조하십시오. 여기서 virtualenvwrapper의 기능 대부분을 다루고 있습니다.

pyenvrbenv(루비 버전 전환을위한 훌륭한 툴)을 모델로 하고 있으며 유일한 의존성은 bash입니다.

  • pyenv는 비슷한 이름과 관련이 없습니다. pyvenv최근 Python 3 버전의 일부인 virtualenv에 해당하며 Python 버전 전환을 처리하지 않습니다.

경고

pyenv에 대한 두 가지 경고 :

  1. 그것은 bash 또는 유사한 쉘에서만 작동합니다-또는 더 구체적으로 pyenv-virtualenv 플러그인은 Ubuntu 또는 Debian에 dash있는을 좋아하지 않습니다 /bin/sh.
  2. Ansible과 같은bash --login 자동화 도구로는 항상 달성하기 쉽지 않은 대화식 로그인 쉘 (예 : 터미널 사용) 에서 실행해야합니다 .

따라서 pyenv는 대화식 사용에 적합하고 스크립팅 서버에는 적합하지 않습니다.

SSL 모듈 문제

사용하는 한 가지 이유 pyenv는 이전 시스템 제공 Python 버전을 사용할 때 Python SSL 모듈을 업그레이드 할 때 종종 문제가 있기 때문입니다.


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

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

  • virtualenvtar 파일 의 최신 버전을 찾을 필요가 없습니다

  • 최신 정보를 유지하기 위해 bash 스크립트에서 버전 정보를 편집 할 필요가 없습니다.

  • 당신은 필요하지 않습니다 curl/ wget또는 tar설치하거나 pip또는easy_install

  • 이것은 2.7과 3.X에서 작동합니다.

다음을 저장하십시오 /tmp/initvenv.py:

에서 미래의 수입 print_function

import os, sys, shutil, tempfile, subprocess, tarfile, hashlib

try:
    from urllib2 import urlopen
except ImportError:
    from urllib.request import urlopen

tmp_dir = tempfile.mkdtemp(prefix='initvenv_')
try:
    # read the latest version from PyPI
    f = urlopen("https://pypi.python.org/pypi/virtualenv/")
    # retrieve the .tar.gz file
    tar_found = False
    url = None
    sha256 = None
    for line in f.read().splitlines():
        if isinstance(line, bytes):
            line = line.decode('utf-8')
        if tar_found:
            if 'sha256' in line:
                sha256 = line.split('data-clipboard-text')[1].split('"')[1]
                break
            continue
        if not tar_found and 'tar.gz">' not in line:
            continue
        tar_found = True
        for url in line.split('"'):
            if url.startswith('https'):
                break
    else:
        print('tar.gz not found')
        sys.exit(1)
    file_name = url.rsplit('/', 1)[1]
    print(file_name)
    os.chdir(tmp_dir)
    data = urlopen(url).read()
    data_sha256 = hashlib.sha256(data).hexdigest()
    if sha256 != data_sha256:
        print('sha256 not correct')
        print(sha256)
        print(data_sha256)
        sys.exit(1)
    with open(file_name, 'wb') as fp:
        fp.write(data)
    tar = tarfile.open(file_name)
    tar.extractall()
    tar.close()
    os.chdir(file_name.replace('.tar.gz', ''))
    print(subprocess.check_output([sys.executable, 'virtualenv.py'] +
                                  [sys.argv[1]]).decode('utf-8'), end='')
    if len(sys.argv) > 2:
        print(subprocess.check_output([
            os.path.join(sys.argv[1], 'bin', 'pip'), 'install', 'virtualenv'] +

            sys.argv[2:]).decode('utf-8'), end='')
except:
    raise
finally:
    shutil.rmtree(tmp_dir)  # always clean up

그것을 다음과 같이 사용하십시오

python_binary_to_use_in_venv /tmp/initvenv.py your_venv_name [optional packages]

예를 들어 ( distribute호환성 계층 이 정말로 필요한 경우 setuptools)

python /tmp/initvenv.py venv distribute

이전 버전의 파이썬에서는 InsecurePlatformWarnings¹를 줄 수 있습니다.

virtualenv가 있으면 (예 venv:) virtualenv방금 설치 한 것을 사용하여 다른 virtualenv를 설정할 수 있습니다 .

venv/bin/virtualenv venv2

virtualenvwrapper

한 번 설정 한 후에 virtualenvwrapper 도 살펴 보는 것이 좋습니다 .

% /opt/python/2.7.10/bin/python /tmp/initvenv.py venv virtualenvwrapper

및 활성화 (로그인 스크립트에서 수행 가능) :

% source venv/bin/virtualenvwrapper.sh

당신은 다음과 같은 일을 할 수 있습니다 :

% mktmpenv 
New python executable in tmp-17bdc3054a46b2b/bin/python
Installing setuptools, pip, wheel...done.
This is a temporary environment. It will be deleted when you run 'deactivate'.
(tmp-17bdc3054a46b2b)% 

¹ 경고를 표시하지 않는 방법을 찾지 못했습니다. pip그리고 / 또는 에서 해결할 수 request있지만 개발자는 원인을 서로 지적합니다. 필자는 사용하고있는 파이썬 버전을 최신 버전으로 업그레이드하기 위해 비현실적인 권장 사항을 얻었습니다. 나는 이것이 Linux Mint 17 설치와 같은 것을 깨뜨릴 것이라고 확신한다. 다행히도 pip패키지를 캐시하므로 패키지 설치마다 한 번만 경고가 표시됩니다.


InsecurePlatformWarningPyPI에서 추가 패키지 pyopenssl, pyasn1, ndg-httpsclient를 설치하여 경고 (예 : Python이 버전 2.7.9 이전 인 경우 경고)를 수정할 수 있습니다. (SSL, 인증서 디코딩, PyOpenSSL을 통한 https 지원) 올바른 프로토콜이 없으면 코드를 다운로드하여 실행할 수있을 정도로 안전하지 않습니다.
hynekcer 2016 년

@ hynekcer 나는 그것을 시도 할 것이다. pip 및 / 또는 요청이 적절한 (이전의) 파이썬 버전의 패키지에 의존하지 않는 이유는 무엇입니까?
Anthon

0

Virtualenv 공식 사이트에 대한 유용한 지침이 있습니다. https://pypi.python.org/pypi/virtualenv

기본적으로 내가 한 일은 install pipwith sudo easy_install pip다음 사용한 sudo pip install virtualenv다음과 같은 환경을 만들었습니다. virtualenv my_env(원하는 이름을 지정하십시오) virtualenv --distribute my_env; 이는 설치 distributepip내 VIRTUALENV있다.

다시, virtualenv페이지 의 지시 사항을 따르십시오 .

루비에서 오는 번거 로움; P


0

다음은 virtualenvwrapper (update of this ) 를 설치하는 좋은 방법 입니다.

virtualenv-1.11.4 다운로드 ( 여기 에서 최신 버전을 찾을 수 있음 ), 압축 해제, 열기terminal

# Create a bootstrapenv and activate it:
$ cd ~
$ python <path to unzipped folder>/virtualenv.py bootstrapenv
$ source bootstrapenv/bin/activate

# Install virtualenvwrapper:
$ pip install virtualenvwrapper
$ mkdir -p ~/bootstrapenv/Envs

# append it to file `.bashrc`
$ vi ~/.bashrc
  source ~/bootstrapenv/bin/activate
  export WORKON_HOME=~/bootstrapenv/Envs
  source ~/bootstrapenv/bin/virtualenvwrapper.sh

# run it now.
$ source ~/.bashrc

이제는 ..etc를 사용할 수 있습니다 mkvirtualenv env1.lsvirtualenv

참고 : 다운로드 폴더에서 삭제 virtualenv-1.11.4하거나 삭제할 수 있습니다 virtualenv-1.11.4.zip.


0

좋은 소식은 python3.4를 설치 한 경우 pyvenv가 이미 설치되어 있다는 것입니다. 그래서 그냥

pyvenv project_dir
source project_dir/bin/activate
python --version   
python 3.4.*

이제이 가상 환경에서 pip를 사용하여이 프로젝트의 모듈을 설치할 수 있습니다.

이 가상 환경을 그대로 두십시오.

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