기존 virtualenv를 정상적으로 업그레이드 할 수 있습니까?


93

Python 2.5 용으로 만든 virtualenv가 있으며이를 Python 2.6으로 "업그레이드"하고 싶습니다.

원래 설정 방법은 다음과 같습니다.

virtualenv --no-site-packages -p python2.5 myenv

이제 동일한 디렉토리에서 virtualenv를 실행하여 업그레이드합니다.

virtualenv --no-site-packages -p python2.6 myenv
...
Not overwriting existing python script myenv/bin/python (you must use myenv/bin/python2.6)
...
Overwriting myenv/bin/activate with new content

기본 파이썬은 2.6을 지정할 수 있지만 여전히 2.5입니다. 할 수있는 방법이 있나요 제거 하는 대신 2.6 '빈 / 파이썬의 입장을 전적으로 2.5과이는?

답변:


62

Python 2.6 virtualenv를 사용하여 기존 디렉토리를 "revirtual"할 수 있습니다. 하지만 설치 한 모든 모듈을 다시 설치해야합니다. 나는 종종 모듈을 개발하기위한 가상 디렉토리를 가지고 있고, 많은 버전의 파이썬이있는 동일한 디렉토리를 virtualenv로 가지고 있으며 잘 작동합니다. :)


1
감사! 귀하의 방법을 시도한 결과 '활성화'스크립트가 업데이트 된 것을 확인했지만 이전 버전이 남아 있습니다 (수정 된 질문 참조). 예를 제공 할 수 있습니까?
Matt Norris

13
python 2.6으로 virtualenv를 다시 실행하기 전에 virtualenv에서 bin / python 실행 파일을 제거하면됩니다.
Carl Meyer

9
글쎄, 당신 그것을 작동 시킬 수 있습니다-그러나 왜? 가장 큰 매력 virtualenv은 재현 가능한 파이썬 환경을 쉽고 저렴하게 만든다는 것입니다. 왜 하나만 사용하고 모든 것을 고쳤는지, 다시 재현 할 수 있는지, 아니면 깨끗한 새 것을 만들 수있을 때 프로덕션 환경을 방해하고 있는지 확신하지 못하는 이유는 무엇입니까?
Ned Deily

9
@Ned : Virtualenv는 재현 가능한 환경을 만드는 것이 아니라 격리 된 환경을 만듭니다. 그것들을 재현하려면 모든 것을 같은 방식으로 설치해야합니다. virtualenv로는 충분하지 않습니다. zc.buildout이 더 좋습니다.
Lennart Regebro

1
@Ned : 포인트 획득; 이것은 제가 작업하고있는 개발 환경입니다. 2.6을 꼭해야하는 경우가 아니라면 2.5로 유지하고 싶었습니다. 그 필요성이 발생했기 때문에 디렉토리를 다시 빌드하고 새 환경에 복사 / 붙여 넣기하지 않고도 코드에 미치는 영향을 확인하기 위해 격리 된 환경을 업그레이드 할 수 있는지 궁금했습니다.
Matt Norris

19

Python 3.3 이상에서 venv 는 --upgrade 플래그를 지원합니다.

  --upgrade             Upgrade the environment directory to use this version
                        of Python, assuming Python has been upgraded in-place.

용법:

python -m venv --upgrade YOUR_VENV_DIRECTORY

문제없이 여러 프로젝트에서 내 venv를 Python 3.7.x에서 3.8로 업그레이드했습니다.


1
"Python이 제자리에서 업그레이드되었다고 가정합니다."... 이것은 불행히도 내 시스템 python3이 3.6 python3을 가리키면 내 venv에서 3.7을 가리킬 수 없다는 것을 의미하는 것 같습니다
joel

4

당신은 만들어야 새로운 virtualenv사용 python2.6하고, 새로운 ENV를 활성화 한 후, 그 사용 python2.6하고 easy_install당신이 필요로하는 모든 사이트 패키지를 설치하는 새 버전. 에 대한 경로 이름 virtualenv은 환경 내의 다양한 파일에 고정되어 있으므로 전환 할 준비가되면 시작 스크립트 등을 변경하여 새 virualenv경로 를 참조 하거나 복사 할 때 매우주의해야합니다. 이전 디렉토리 및 그 안의 경로 이름 수정.


3

CentOS에 두 번째 Python 설치

  1. 파이썬 다운로드
  2. 다른 지역에 설치

    configure --prefix=/opt/virtualenv/python 
    make && make install
  3. 새로운 파이썬을 사용하여 가상 환경 생성

    virtualenv /opt/virtualenv --python=/opt/python276/bin/python

    참고 : 필요한 경우 다른 사용자로 수행 할 수 있습니다.

    chown pyuser -R /opt/virtualenv
    su - pyuser
    source /opt/virtualenv/bin/activate
    python -v
  4. 가상 환경 생성 :

    virtualenv /opt/virtualenv
    su - infograficos
    source bin/activate
  5. Python 2.7 (virtualenv 내부)로 pip 설치

    easy_install pip 

0

OS X를 사용 하는 경우 타사 라이브러리가 작동하는 동안 Python을 부 증가 버전 (예 : 2.7.6에서 2.7.8)으로 업그레이드하려면이 방법을 시도 하십시오 .

Django가 설치된 5 가지 가상 환경에서 작동합니다.

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