bash를위한 Virtualenv


0

나는 virtualenv파이썬 코드로 작업 할 때 정말 좋아 하며 작업 할 때 일부를 에뮬레이트 할 수있는 도구가 있는지 궁금합니다 bash.

내가 원하는 것은 구성을로드 / 언로드하여 환경 변수를 설정하는 완전히 뒤집을 수있는 방법입니다.

나는 디렉토리에 들어갈 때 마술을하는 많은 도구에 대해 알고 있지만 그와 같은 것으로 시작하고 싶지는 않은 것 같습니다.

답변:


0

그것이 당신이 찾고있는 것인지 확실하지 않지만 내 rc 파일 에 이것을 가지고 있습니다 :

mklab() {
    # creates small test environments for scripting
    local d=$(mktemp -d) && cd "$d" || return 1
    clear; bash --login --noprofile --norc
    cd - && rm -r "$d"
}; export -f mklab

깨끗한 쉘이있는 임시 디렉토리에 테스트를하고 나중에 제거합니다.

여기서 virtualenv는 라이브러리를 "설치"하지 않기 때문에 bash의 나쁜 예입니다. bash 버전을 쉽게 전환하는 방법을 찾고 있다면 질문에서 언급해야합니다.


예, sh 파일을 소싱하여 "설치" "라이브러리"를 수행합니다.
Martian

그냥 코드를 실행하는 경우 소스 파일을 터미널에 복사하여 붙여 넣는 경우에도 동일합니다. 라이브러리가 아니며 설치가 아닙니다. 대부분 셸을 실행할 때마다 수동으로로드하는 함수 선언 세트입니다.
Samus_

0

순진한 시도 :

env를로드하려면 :

shvirtualenv() ( source "$1"; VIRTUALENV="$1" bash; )

종료시 변수를 저장해야합니다 (또는 바람직하지 않은 경우).

shvirtualenv_exit() {
    # one could ask here whether to save the env:
    declare -x > $VIRTUALENV
}

trap EXIT shvirtualenv_exit

단점 :

  • 상속을 잘 처리하지 못합니다. 저장시 다른 환경을 제공하려는 경우 모든 환경을 저장하고 부모 환경의 추가 변경 사항이 반영되지 않습니다.
  • 또 다른 문제는 여러 세션에서 발생합니다 (다른 터미널을 열면됩니다). 이제 충돌이 발생합니다.

할 것:

  • 나는 env에 대한 별도의 역사를보고 싶습니다.
  • 프로젝트 별 bashrc

0

이것은 정말 오래된 질문입니다. 여기서 답변이 구식입니다 ...

virtualenv이것을 수행하는 현재 (2015) 방법은 다음과 같습니다.

$ {VIRTUAL_ENV} / bin / postactivate에서 :

export DJANGO_SETTINGS_MODULE=app.local_settings

$ {VIRTUAL_ENV} / bin / predeactivate에서 :

unset DJANGO_SETTINGS_MODULE

원 라이너 :

echo 'DJANGO_SETTINGS_MODULE=EOS.local_settings' >> ${VIRTUAL_ENV}/bin/postactivate
echo 'unset DJANGO_SETTINGS_MODULE' >> ${VIRTUAL_ENV}/bin/predeactivate

나는 virtualenvwrapper를 좋아한다.

  • workon myvenv # 내 virtualenv를 활성화하십시오
  • setvirtualenvproject # 프로젝트 디렉토리에서 다음을 허용합니다.
  • cdproject
  • cdvirtualenv
  • deactivate

YMMV

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