programing

Python용 pip, virtualenv 및 배포 방법은 무엇입니까?

bestcode 2022. 11. 6. 10:34
반응형

Python용 pip, virtualenv 및 배포 방법은 무엇입니까?

간단한 질문

  • , 및 을 설치하는 적절한 방법은 무엇입니까?

배경

SO 질문 4314376에 대한 나의 답변에서, 나는 다음을 사용할 것을 권했다.ez_setup 그, so 、 so 、 스 、 스 、 스 、 so 、 so so so so so so 。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을 사용하길 원하십니까?글로벌 사이트 패키지 디렉토리를 깔끔하게 유지하는 것이 좋습니다.따라서 설치하는 패키지는 및 뿐입니다.(이 Python 공개 서비스 발표 때문에 최근 툴박스에 추가했습니다.이 2개의 패키지를 인스톨 하려면 , 다음의 방법을 사용했습니다.

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

셋업툴이 필요 없고 설치도 간단

Python 공공 서비스 발표를 따르기 위해 Python을 새로 설치하는 경우 다음을 수행합니다.

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 사용자 Gliph는 다음과 같이 말했습니다.

DO, NEVER DO.sudo python setup.py install신경쓰지 말아요.~/.pydistutils.cfg pip ~/.local pydistutils.cfg 。은 ''' 입니다.ez_setup.pysetuptools asy_install 。이러한 버전에서는 운영체제상의 다른 기능이 고장날 가능성이 있습니다.

짧은 질문으로 돌아가다

그래서 글리프의 대답은 제 원래 질문으로 이어집니다.

  • , 및 을 설치하는 적절한 방법은 무엇입니까?

python 자체에 아무것도 설치하지 않아도 됩니다.

당신은 sudo나 어떤 특권도 필요 없습니다.

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

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

  1. virtualenv 운 virtual :
  2. 소스 tarball을 언팩합니다.
  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 Python도 있습니다).--distribute) 이제 부트스트랩 환경을 만들 수 있습니다.python virtualenv.py path-to-bootstrap ★★★★★★★★★★★★★★★★★」python3 virtualenv.py path-to-bootstrap.

글리프는 이런 걸 하라는 뜻인 것 같아

  1. 「」를 합니다.~/.local( ( ( ( ( ( ( ( ( ( )
  2. 고객님의 고객명~/.bashrc~/.local/bin 있다PATH 그 리리 and and and~/.local 있다PYTHONPATH.
  3. " " " 를 만듭니다.~/.pydistutils.cfg」가 포함되어 .

    [install]
    prefix=~/.local
    

    표준 ConfigParser 형식 파일입니다.

  4. distribute_setup.pypython distribute_setup.py(no)sudo하지 않는 에 대해 불평하는 경우site-packages디렉토리, 수동으로 작성합니다.

    mkdir -p ~/.local/lib/mkdir 2.7/site-param/

  5. 실행합니다.which easy_install게게 to to to to to에서 온 것을 ~/.local/bin

  6. 실행합니다.pip install virtualenv
  7. 실행합니다.pip install virtualenvwrapper
  8. 을 만듭니다(예: 폴더~/.virtualenvs
  9. »~/.bashrc

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

끝이야, 소용없습니다.sudo이 Python에 .~/.localOS(Python) Python(Python)을 사용합니다.호환성이 어느 인지 불명확실히 알 수 .virtualenvwrapper에서는 - 수 :- ) 。

이 답변에 링크된 여러 튜토리얼에서 조언한 단계를 따르면 Walker 및 Vinay의 답변에서 다소 복잡한 "수동" 단계를 거치지 않고도 원하는 효과를 얻을 수 있습니다.Ubuntu에 있는 경우:

sudo apt-get install python-pip python-dev

OS X에서는 homebrew를 사용하여 python을 설치함으로써 동등한 기능을 제공합니다(자세한 내용은 여기를 참조하십시오).

brew install python

★★★★★★★★★★★★★★★★ pip인스톨 할 수 ( 「 「 」 、 「 」 、 「 」는 생략할 수 ).sudo비단뱀

sudo pip install virtualenvwrapper

할 가 있는 것 같습니다).할 수 .sudo apt-get install virtualenvwrapper)

주의: Ubuntu 14.04에서는 pip 설치에서 오류가 발생하므로pip3 install virtualenv virtualenvwrapperVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 나 my my my.bashrc/.zshrcfilename을 클릭합니다.

에 '부르다'에 ''.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

그 결과 마음에 드는 패키지를 자유롭고 빠르게 설치할 수 있는 새로운 Virtual Env가 도입되었습니다.

pip install flask

Python 3.4 이후

Python 3.3은 venv 모듈을 추가하고 Python 3.4는 surepip 모듈을 추가합니다.이것에 의해, 부트 스트랩의 pip는 다음과 같이 간단하게 됩니다.

python -m surepip

에의 .venv이데올로기 때문에

보증된 pip은 PEP 453에 설명되어 있습니다.

Ubuntu의 경우:

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부터는 ssl 검증도 수행합니다.
  3. pypi tarball을 업로드할 수 있는 사용자는 github tarball보다 적습니다.

업데이트:2013년 7월부로 이 프로젝트는 더 이상 유지보수가 되지 않습니다.저자는 pyenv를 사용할 것을 제안합니다.(pyenv에는 virtualenv에 대한 기본 지원은 없지만 virtualenv와 잘 어울립니다.)

Pythonbrew는 python용 버전 매니저로 virtualenv를 지원합니다.

pythonbrew를 설치하고 venvs를 사용하여 python-version을 설치하면 매우 간단합니다.

# Initializes the virtualenv 
pythonbrew venv init

# Create a virtual/sandboxed environment 
pythonbrew venv create mycoolbundle  

# Use it 
pythonbrew venv use mycoolbundle

OS에서 버전 모듈을 데 문제가 있었습니다(). 현재는 Python을 사용하고 .pyenv.

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

  • Mac을 합니다.brew install pyenvLinux에서는 pyenv-installer를 사용합니다.
  • 내장 virtualenv 지원 및 Python 버전 전환(필요한 경우)
  • Python 2 또는 3에서 잘 작동하며 동시에 여러 버전을 설치할 수 있습니다.

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

좋은 튜토리얼 몇 가지:

pyenv-virtualenv으로 내장되었습니다.: ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」pyenv commands | grep virtualenv확인할 수 있습니다.pyenv-virtualenvwrapper는 pyenv-virtualenv를 사용합니다.pyenv-virtualenv.virtualenvrapper는 pyenv-virtualenv를 사용합니다.

pyenv 만든 것입니다.rbenv(루비) 바시다

  • 한 이름의 pyenv와 .pyvenv의 Python 이며 Python 버전 하지 않습니다.Python 3 버전 스위칭은 Python 3 버전입니다.

주의사항

pyenv에 대한 두 가지 경고:

  1. 또는 합니다. bash를 .pyenv-가상엔비dash, 「」)/bin/sh우분투 데비안
  2. 에서 실행해야 합니다( " " " ) 。bash --login터미널 사용)과 같은 자동화 도구를 사용하여 이 작업을 수행하는 것이 항상 쉽지는 않습니다.

따라서 pyenv는 인터랙티브한 사용에 최적이며 스크립팅 서버에는 적합하지 않습니다.

이전 배포 - SSL 모듈 문제

「」를 하는 .pyenv시스템에서 제공하는 이전 버전의 Python을 사용할 때 Python SSL 모듈을 업그레이드하는 데 문제가 자주 발생한다는 것입니다.현재 Linux 디스트리뷰션이 Python 3.x를 지원하므로 이는 문제가 되지 않을 수 있습니다.

sudo python setup.py 설치는 문제 없습니다.

차이점은 OS의 site-packages 디렉토리를 .py 파일의 복사처로 사용하는 것입니다.

따라서 pip을 os 와이드로 액세스 할 수 있도록 하는 것이 좋습니다.다른 방법이 나쁘다고는 할 수 없지만, 이것만으로도 충분히 공평할 것이다.

ActivePython을 설치합니다.여기에는 pip, virtualenv 및 Distribute가 포함됩니다.

저도 최근에 같은 문제에 부딪혔어요."항상 virtualenv를 사용한다"는 생각에 점점 더 집착하고 있기 때문에 글로벌 또는 사용자 사이트 패키지 디렉토리에 distribute를 설치하지 않고 pip을 사용하여 virtualenv를 설치하는 것이 문제였습니다.이를 위해 distribute, pip 및 virtualenv를 수동으로 다운로드하고, 각각에 대해 "http setup.py install --/.local/python-private"를 실행했습니다(설치 스크립트가 배포를 찾을 수 있도록 PYATONPATH=~/.local/python-private를 임시로 설정).virtualenv 스크립트를 PATH에 있는 다른 디렉토리로 이동하고 배포 및 virtualenv 모듈을 sys.path에서 찾을 수 있도록 편집했습니다.Tada: /usr, /usr/local 또는 사용자 사이트 패키지 dir에는 아무것도 설치하지 않았지만 virtualenv는 어디서든 실행할 수 있고 virtualenv에서는 pip을 얻을 수 있습니다.

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

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

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

이 가상환경에서 벗어나면 됩니다.

deactivate
  • python 자체에 아무것도 설치하지 않아도 됩니다.

  • 당신은 sudo나 어떤 특권도 필요 없습니다.

  • virtualenv filetar 파 tar

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

  • 없다curl/wget ★★★★★★★★★★★★★★★★★」tarinstalled (설치 완료 """ " " " " ""pip ★★★★★★★★★★★★★★★★★」easy_install

  • 이것은 3과 마찬가지로 2.7에도 대응합니다.x

을 하다에 해 두세요./tmp/initvenv.py:

from __future__ import 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

버전의에서는 python을 사용할 수 InsecurePlatformWarningm.m.m.m.m.m.m.m.m.m.m

★★★★★★★★★★★★★★★★★★★★venv) Env를 사용하면 다른 Virtual 할 수 virtualenv치치: :

venv/bin/virtualenv venv2

##가상환경래퍼

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)% 

i 경고를 억제할 방법이 없었다.피펫과/또는 요청에서 해결될 수 있지만, 개발자들은 다른 사람들에게 영향을 미칠 수 있습니다.나는 종종, 제가 최신 버전의 파이썬 버전을 업그레이드하기 위해 사용하는 파이썬 버전을 업그레이드합니다.난 이걸 깨워. 리눅스 민트 17을 설치하겠습니다.다행히 Pip 캐시 패키지가 패키지 설치당 한 번만 만들 수 있습니다.

Virtualenv 공식 사이트에는 좋은 지침이 있습니다.https://pypi.python.org/pypi/virtualenv

pipsudo easy_install pip그 후 , " " " "sudo pip install virtualenv 이렇게 했습니다: ㄴㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ, ㄴ)virtualenv my_env싶은 대로 한 대로 했다.virtualenv --distribute my_env 되어 있습니다.distribute ★★★★★★★★★★★★★★★★★」pip사용할 수 있습니다.

다시 하다, 하다, 하다의 지시에 .virtualenv

Ruby;P에서 온다는 것은 좀 번거로움

다음은 virtualenvwrapper(이 업데이트)를 설치하는 좋은 방법입니다.

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

이상입니다. 이제 사용하실 수 있습니다.mkvirtualenv env1,lsvirtualenv..기타

삭제가 합니다.virtualenv-1.11.4 ★★★★★★★★★★★★★★★★★」virtualenv-1.11.4.zip[ Downloads ] [ Downloads ](다운로드)

언급URL : https://stackoverflow.com/questions/4324558/whats-the-proper-way-to-install-pip-virtualenv-and-distribute-for-python

반응형