최근에 다른 응용 프로그램과 함께 Mac에 많은 도트 파일을 설치했습니다 (터미널 대신 iTerm으로 변경하고 기본 텍스트 편집기로 Sublime로 변경했습니다). 여전히 거기에 있고 아무것도 실행하려고 할 때마다 다음과 같은 오류가 발생합니다.
dyld: Library not loaded: @executable_path/../.Python
Referenced from: /Users/[user]/.virtualenvs/modclass/bin/python
Reason: image not found
Trace/BPT trap: 5
dotfile과 관련된 모든 파일을 제거하고 .bash_profile을 이전 상태로 복원했지만 문제가 지속됩니다. 문제를 진단하거나 쉽게 해결할 수있는 방법이 있습니까 (예 : 모든 가상 환경을 다시 만들 필요가 없음)?
답변
여기서 문제에 대한 해결책을 찾았 으므로 모든 크레딧은 저자에게 전달됩니다.
요점은 virtualenv를 만들 때 Homebrew가 설치된 Python에 많은 심볼릭 링크가 만들어지는 것입니다.
다음은 하나의 예입니다.
$ ls -la ~/.virtualenvs/my-virtual-env
...
lrwxr-xr-x 1 ryan staff 78 Jun 25 13:21 .Python -> /usr/local/Cellar/python/2.7.7/Frameworks/Python.framework/Versions/2.7/Python
...
Homebrew를 사용하여 Python을 업그레이드 한 다음을 실행 brew cleanup
하면 virtualenv의 심볼릭 링크가 더 이상 존재하지 않는 경로를 가리 킵니다 (Homebrew가 삭제했기 때문에).
심볼릭 링크는 새로 설치된 Python을 가리켜 야합니다.
lrwxr-xr-x 1 ryan staff 78 Jun 25 13:21 .Python -> /usr/local/Cellar/python/2.7.8_1/Frameworks/Python.framework/Versions/2.7/Python
해결책은 virtualenv에서 심볼릭 링크를 제거한 다음 다시 만드는 것입니다.
find ~/.virtualenvs/my-virtual-env/ -type l -delete
virtualenv ~/.virtualenvs/my-virtual-env
삭제하기 전에 어떤 링크가 먼저 삭제되는지 확인하는 것이 가장 좋습니다.
find ~/.virtualenvs/my-virtual-env/ -type l
제 생각에는 깨진 심볼릭 링크 만 삭제하는 것이 좋습니다. GNU를 사용하여이 작업을 수행 할 수 있습니다 find
.
gfind ~/.virtualenvs/my-virtual-env/ -type l -xtype l -delete
GNU find
가없는 경우 Homebrew와 함께 GNU 를 설치할 수 있습니다 .
brew install findutils
기본적으로 Homebrew와 함께 설치된 GNU 프로그램은 접두사가 붙는 경향이 있습니다 g
. 이것은 find
OS X와 함께 제공 되는 바이너리를 가리지 않도록하기위한 것 입니다.
답변
몇 가지를 시도한 후에 이것은 나를 위해 일했습니다.
virtualenv 디렉토리로 이동하십시오 (그러나 workon을 실행하지 마십시오).
cd ~/.virtualenv/name_of_broken_venv
이제이 파일들을 삭제하십시오 :
rm -rf .Python bin/python* lib/python2.7/* include/python2.7
그런 다음 venv를 다시 빌드하려면 다음을 실행하십시오.
virtualenv .
workon name_of_broken_venv
pip freeze
이제 설치된 패키지 목록이 다시 나타납니다.
답변
Snow Leopard에서 Mac OS X Mavericks로 업데이트했을 때 발생했습니다. 사전에 추출을 다시 설치해야했습니다. pip를 사용하여 프로젝트에 대한 고정 명령을 실행했으면합니다.
해결하려면 가상 환경이 가리키는 경로를 업데이트해야합니다.
- brew로 python 버전을 설치하십시오.
brew install python
- virtualenvwrapper를 다시 설치하십시오.
pip install --upgrade virtualenvwrapper
- 이전 가상 환경을 제거했습니다.
rmvirtualenv old_project
- 새로운 가상 환경을 만듭니다.
mkvirtualenv new_project
- 새로운 가상 환경에서 작업
workon new_project
- pip를 사용하여 새 프로젝트의 요구 사항을 설치하십시오.
pip install -r requirements.txt
이전과 같이 프로젝트를 종료해야합니다.
답변
@Chris Wedgwood
유지하기위한 업데이트 버전 의 답변 site-packages
(패키지 설치 유지)
cd ~/.virtualenv/name_of_broken_venv
mv lib/python2.7/site-packages ./
rm -rf .Python bin lib include
virtualenv .
rm -rf lib/python2.7/site-packages
mv ./site-packages lib/python2.7/
답변
나타납니다 이 문제를 실행하는 것입니다 해결하기 위해 적절한 방법을
pip install --upgrade virtualenv
Homebrew로 파이썬을 업그레이드 한 후.
이것은 자체 패키지 관리 시스템을 가진 파이썬과 같은 것을 설치하는 모든 공식의 일반적인 절차입니다. 당신이 설치할 때 brew install python
, 당신은 설치 python
및 pip
및 easy_install
및 virtualenv
등등. 따라서 해당 도구를 자체 업데이트 할 수있는 경우 Homebrew를 문제의 원인으로 찾기 전에 확인하는 것이 가장 좋습니다.
답변
이것이 brew upgrade
파이썬을 업그레이드 한 것으로 인해 발생 하고 이전 버전으로 다운 그레이드하면 괜찮습니다 ( brew switch python [previous version]
예 🙂 brew switch python 3.6.5
. 여기에서.
답변
virtualenvwrapper 지침
허용 된 답변에 표시된 것처럼 근본 원인은 가상 업데이트로 인해 가상 환경 심볼릭 링크가 깨진 파이썬 경로를 가리키고 있음을 의미합니다 . 자세한 내용은 여기를 참조 하십시오 .
각 가상 환경에 대해 올바른 python 경로 (Brew 지하실)를 가리 키도록 심볼릭 링크를 다시 할당해야합니다. 다음은 virtualenvwrapper 로 수행하는 방법 입니다. 여기에서는 “my-example-env”라는 가상 환경을 업데이트하고 있습니다.
cd ~/PYTHON_ENVS
find ./my-example-env -type l -delete
mkvirtualenv my-example-env
다 했어요