간단한 질문
virtualenv/virtualenvwrapper를 사용하면 특정 가상 환경에 연결된 python
호출에 접두사를 추가 할 수 있습니까?OS X에서 32 비트 모드로 virtualenv를 사용하여 비 시스템 파이썬을 실행
배경
brew installed 파이썬 2.7을 사용하여 여러 개의 가상 환경을 갖고 싶습니다. 그러나 일부는 64 비트 모드와 다른 32 비트 모드로 실행 중입니다.
아래에는 OS X 개발을위한 일반적인 설정이 나와 있습니다. python
호출에 추가하고자하는 특정 접두어는 파이썬이 32 비트 모드로 실행되도록 강제하는 arch -i386
입니다. 또 다시 가장 중요한 부분은 workon env32
를 호출 한 후 만 추가된다는 것입니다 (예제 참조). 내 .bash_profile에서 별칭을 설정할 수 있다는 것을 알고 있지만 가상 환경을 만들거나 제거 할 때마다 수정해야합니다.
EDIT
간단한 별칭을 사용하여 발생하는 문제에 대해 자세히 설명하기 위해 하나 이상의 32 비트 가상 환경이있을 수 있습니다. 이것은 workon
에 대한 호출이 python
호출에 접두어를 추가하는 것이 이상적이므로 터미널의 워크 플로가 동일하게됩니다. 의미는 workon env_x_32
을 호출 한 후 python
을 사용할 수 있고 arch -i386
는 터미널을 사용할 때 투명하게 나타납니다.
파이썬 설치 :
> brew install python --framework --universal
(PIP, VIRTUALENV 및 virtualenvwrapper를 설치 한 후) 가상 환경을 만들기 :
> mkvirtualenv env_1_64 --no-site-packages
> mkvirtualenv env_1_32 --no-site-packages
> mkvirtualenv env_2_64 --no-site-packages
> mkvirtualenv env_2_32 --no-site-packages
64 비트 사용 :
> workon env_1_64
> python myscript.py
> workon env_2_64
> python my_other_project_script.py
32 비트 사용 : (현재/비 이상적인)
> workon env_1_32
> arch -i386 python myscript.py
> workon env_2_32
> arch -i386 python my_other_project_script.py
32 비트 사용 : (이상적인) Sean으로 실행
> workon env_1_32
> python my_32bit_project.py # Note that the arch -i386 would be transparent
솔루션
' s comments :
32 비트로 실행하고 싶었던 환경의 활성화/비활성화 안에 별칭을 추가했습니다. 자세한 내용은 아래를 참조하십시오.
env_1_32 : 스크립트 활성화
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
deactivate() {
alias python='python' # <---- Added this line
# reset old environment variables
if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
PATH="$_OLD_VIRTUAL_PATH"
export PATH
unset _OLD_VIRTUAL_PATH
fi
# ****** Removed Content to keep the post shorter*********
}
# unset irrelavent variables
deactivate nondestructive
VIRTUAL_ENV="/Users/Adam/.envs/env_1_32"
export VIRTUAL_ENV
# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
hash -r
fi
# ****** Removed Content to keep the post shorter*********
alias python='arch -i386 python' # <---- Added this line to run as 32bit
어제이 질문 (및 답변)은 나에게 매우 유용했습니다. 감사합니다. 그러나, 오늘은 내 프로젝트에 최상위 'main.py'스크립트가 없기 때문에 다시 붙어 있습니다. 대신 'setup.py install'또는 'setup.py'스크립트를 실행할 때 setuptools (?)가 생성합니다. 내 setup.py에서 'entry_points'설정을 사용하여 '개발'하십시오. 즉, 사용자의 컴퓨터에 배포 할 때 '아치'별칭을 삽입 할 수있는 공간이 없습니다. 이것에 대해 별도의 질문을 할 수 있습니다. –