Python Virtualenv-virtualenvwrapper.hook_loader라는 모듈이 없습니다.


79

Mac OS 10.6.8을 실행하고 있습니다. 그리고 python 2.6 외에도 python 2.7을 설치하고 새로운 virtualenv에서 python 2.7을 사용하고 싶었습니다. 다음 단계를 실행했습니다.

python 2.7을 다운로드하고 설치했습니다.

http://www.python.org/ftp/python/2.7.3/python-2.7.3-macosx10.6.dmg

그런 다음 명령을 실행하여 python2.7을 사용하여 새 virtualenv를 설정합니다.

mkvirtualenv --python=python2.7 mynewenv

내 .bash_profile은 다음과 같습니다.

# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh


# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

이제 콘솔을 열면 다음과 같은 오류 메시지가 나타납니다.

ImportError: No module named virtualenvwrapper.hook_loader
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly.

다른 게시물에서도 virtualenvwrapper를 업그레이드해야한다는 사실을 발견했습니다. 도움이되지 않았습니다.

sudo pip install virtualenvwrapper --upgrade

어떤 도움을 주시면 감사하겠습니다.


4
당신이 봤어 아니면 다른 방법을 시도 할 수easy_install
감탄

감사합니다 게시물을 보았습니다. 하지만 파이썬 2.7 용 virtualenv를 설치할 수 없습니다. 메시지는 virtualenv가 이미 2.6 용으로 설치되어 있다는 것입니다. 다음 명령을 실행했습니다. ~ TK $ which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python ~ TK $ sudo pip install virtualenv Requirement already met (--upgrade to upgrade) : virtualenv in / 라이브러리 / 파이썬 / / VIRTUALENV - 1.6 py2.6.egg 2.6 / 사이트 패키지는 ... 정리
토마스 Kremmel

방금 virtualenv의 상태를 보았는데 Py 2.7을 지원하지 않는 것 같습니다.
martineau 2012-07-16

2
참고로이 문제는 다른 경우에 발생했습니다. 를 통해 virtualenv를 만들기 시작한 mkvirtualenv다음 중지했습니다 ( Ctrl+C). virtualenv를 다시 만들려고 할 때 지난 번에 남은 것이 몇 개있었습니다. 내 envs 폴더로 이동하여 불완전하게 구축 된 환경을 삭제했습니다. 그 후 동일한 mkvirtualenv명령이 제대로 작동했습니다.
driftcatcher 2013

2
Yibo Yang의 의견은 내 Ubuntu 설치에도 적용되었습니다. 그냥 맞춤법에주의 ... VIRTUALENVWRAPPER에서 "V"와 수출 VIRTUALENVWRAPPER_PYTHON =는 / usr / 빈 / python3해야 위
케빈

답변:


53

문제는 다음 단계에 따라 해결되었습니다.

#switch the /usr/bin/python link to point to current python link
cd /usr/bin
sudo mv python python.bak
sudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python python

내 .bash_profile 파일에서 virtualenv 명령 앞에 배치되도록 내보내기 명령을 다시 정렬하십시오.

PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH
export PATH

# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

setuptools, 쉬운 설치 및 PIP를 다시 설치하십시오. 이것은 새로운 파이썬 버전에서 제대로 작동하기 위해 분명히 필요합니다.

sudo sh setuptools-0.6c11-py2.7.egg

sudo easy_install-2.7 pip

pip install virtualenv

1
감사합니다-Mac Mountain Lion에서 Python 2.7 설치를 업그레이드 한 후 동일한 문제가 발생하여 해결되었습니다.
A. Jesse Jiryu Davis

3
Mountain Lion에서 저에게 트릭은 / opt / local / bin의 PATH가 소스 ... 라인 전에 설정되었는지 확인하는 것이 었습니다. 나는 / usr / bin 또는 다른 것의 OSX Python 링크를 엉망으로 만들 필요가 없었습니다. 또한 WORKON_HOME은 이제 $ HOME / .virtualenvs로 설정되지 않은 경우 기본값이됩니다
Mark

4
@Mark 댓글에 +1. 또한 brew 사용자의 경우 실제 경로는 usr/local/Cellar/python/<PYTHON-VERSION>/bin/입니다.
rsenna

감사합니다. 데비안에서 파이썬 2.7.4를 컴파일 한 후 도움이됩니다.
Zulu 2013

제 경우에는 다른 컴퓨터에 원격으로 로그인하려는 이유에서만 문제가 발생했습니다. 힌트, 이것은 문제가 로컬 컴퓨터가 아니라 로그인중인 컴퓨터에 있음을 의미합니다! 누군가가 그 자리에있을 경우를 대비해서 언급 할 것 같았어요.
smileBot jul.

23

또한 macport /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin가 있는 경우 PATH 앞 /Library/Frameworks/Python.framework/Versions/2.7/bin과 목록 에이 있는지 확인하십시오 /usr/local/bin. 그런 다음 다음을 설정하십시오 .profile.

export VIRTUALENVWRAPPER_PYTHON=`which python`
export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv`
source `which virtualenvwrapper.sh`

4
내 os ​​python2와 함께 python3을 설치하고 설정 VIRTUALENVWRAPPER_PYTHON하여 문제를 해결했습니다.
Johan Gov 2015

8

제 경우에는이 줄을 .zshrc 파일에 추가하는 것이 트릭이었습니다.

export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7

3
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/3.6.5/bin/python3.6최신 버전.
oba2311

내 bash_profile에export VIRTUALENVWRAPPER_PYTHON="which python3"
파이 zal에서 동

8

Ubuntu 18.04Python 3+를 사용하는 모든 사람에게 이것은 나를 위해 트릭을 수행했습니다.

which python3 # outputs /usr/bin/python3 
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3  
source `which virtualenvwrapper.sh`  

4

이것은 나에게 일어 났고 .NET을 다시 설치하여 해결했습니다 pip. 앞으로 일어날 그했다 있었다 무엇 which pip/usr/bin/pip결과로, 동안을 which python했다 /usr/local/bin/python. 의 경로는 pip이어야합니다 /usr/local/bin/pip. 이것은 Python 설치를 업데이트했을 때 깨졌을 것입니다.

당신이 경우 핍 문서에 따라 쉽게 재설치 할 수를 pip현재 작업 파이썬 설치에. 다음을 수행해야합니다.

  1. get-pip.py 스크립트를 다운로드합니다 ( pip의 문서 에서 직접 링크 됨 ).
  2. 을 실행 python get-pip.py합니다.

이것은 나를 위해 문제를 해결했습니다.


3

이 오류를 일으킬 수있는 여러 가지가 있습니다. 환경이

  • CentOS 7, 다음에서 python3설치epel-release
  • pip3 함께 설치 python3.4 get-pip.py
  • virtualenvwrapper 함께 설치 pip3
  • 다음으로 만든 Python 가상 환경 mkvirtualenv -p /usr/bin/python3.4

그런 다음 어떤 이유로 든 virtualenvwrapper 라이브러리없이 가상 환경이 생성됩니다. 간단히 다시 설치하여 해결할 수 있지만 이번에는 virtlualenv 내에서

[user@localhost ~] $ mkvirtualenv -p /usr/bin/python3.4 venv
Using base prefix '/usr'
New python executable in /home/user/.virtualenvs/venv/bin/python3.4
Also creating executable in /home/user/.virtualenvs/venv/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/preactivate
virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/postactivate
virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/get_env_details
/home/user/.virtualenvs/venv/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper')
/home/user/.virtualenvs/venv/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportError'>: No module named 'virtualenvwrapper')

# the virtualenv should now activated
(venv)[user@localhost ~] $ pip install virtualenvwrapper

2

/ usr / local / bin / python이 존재하는지 확인해야했습니다.

저에게는 간단했습니다.

ln -s /usr/local/bin/python2.7 /usr/local/bin/python

1

같은 오류가 발생합니다. 이전 버전의 pip가 있다는 것을 알았습니다. 간단히 pip를 업그레이드하여 오류를 수정했습니다.


0

방금 파이썬 3.5를 설치하고 virtualenvwrapper를 시도한 다음이 문제가 발생했습니다. python3.5가 설치되어 있지 /usr/local/bin/python3.5않고 설치되었다는 것을 깨달았습니다 /usr/bin/python3.5. 그래서 .bash_profile 스크립트를 다음과 같이 수정했으며 모든 것이 이제 작동하는 것 같습니다.

# Setting PATH for Python 3.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
export PATH
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.5
export WORKON_HOME=$HOME/.virtualenvs
source /Users/bentaub/.virtualenvs/djangodev/bin/virtualenvwrapper.sh

나는 python3.5 경로의 '로컬'이 장기적으로 나에게 어떤 영향을 미칠지 확신하지 못할 정도로 초보자로 충분하지만 지금은 작동합니다.


0

난 후에이 문제가 있었다 제거virtualenvwrapper 패키지를. 사용자 (또는 su다른 사용자)에 로그인 하면 다음과 같은 결과가 나타납니다.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named virtualenvwrapper.hook_loader                                                                                                                                                                       
virtualenvwrapper.sh: There was a problem running the initialization hooks.                                                                                                                                                      

If Python could not import the module virtualenvwrapper.hook_loader,                                                                                                                                                             
check that virtualenv has been installed for                                                                                                                                                                                     
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is                                                                                                                                                                        
set properly.

해결책은 /etc/bash_completion.d/virtualenvwrapper파일 을 삭제하는 것이 었습니다 .

편집하다:

위의 파일을 삭제하지 마십시오. 그렇지 않으면를 다시 설치해도 다시 생성되지 않습니다 virtualenvwrapper. 대신 purgevirtualenvwrapper패키지를 제거 할 때 해야 할 일은 패키지입니다. 데비안에서 이렇게 :

apt-get remove --purge virtualenvwrapper

0

당신을 제거하려고 virtualenv하고 virtualenvwrapper및 사용하여 다시 설치 pip버전 2.7 (나는 생각한다)에서.

같은 오류가 발생하여 방금이 작업을 수행하고 문제를 해결했습니다.

나는 U를 사용


0

받아 들여지는 대답이 있지만 나는 나를 위해 수정 한 것을 넣을 것이라고 생각했습니다.

먼저 Python을 설치하고 Homebrew를 통해 업그레이드했습니다 . 나는 또한 ZSH를 사용하고 있으므로 일부 비트가 출력과 일치하지 않으면 그 이유가 될 수 있습니다.

brew info python 을 실행 하고 출력을 살펴보면 다음과 같은 좋은 정보를 찾았습니다.

If you wish to have this formula's python executable in your PATH then add
the following to ~/.zshrc:
    export PATH="/usr/local/opt/python/libexec/bin:$PATH"

그래서 나는 이것을 터미널 시작 스크립트에 추가했고 오류 n이 더 이상 표시됩니다.

참고 : 이것을 내 PATH의 다른 부분에 삽입했는데 시작시 오류가 지속되었습니다.


0

Conda / Anaconda 프로젝트를 설치 한 후 비슷한 문제가 발생했습니다. 이 질문은 MAC에서 내 문제를 해결하는 데 매우 유용했습니다. 문제를 해결하면 내 .zshrc관련 부분이 다음과 같이 보입니다.

export VIRTUALENVWRAPPER_PYTHON=$HOME/Applications/conda/bin/python
source $HOME/Applications/conda/bin/virtualenvwrapper.sh

이것은 내가 conda를 설치 한 위치에 따라 다르며 자신의 경우에 그것을 파악해야합니다. 아나콘다를 설치 한 위치에 따라 주어진 환경에 대한 세부 사항을 얻으려면 다음을 사용할 수 있습니다.

$  ~/ -name virtualenvwrapper.sh # to see where you have this. May already be prefilled in your shell profile[.zshrc or .profile]

$ which python   # to know the default python your project or rather where conda has installed python for you

다른 답변에서 강조 표시된대로 virtualenv 및 virtualenvwrapper를 제거하고 설치하는 것을 잊지 마십시오.


0

Centos 7.4에서이 문제가 발생했습니다.

위의 답변 중 어느 것도 내 경우에 적합하지 않았습니다. 꽤 많은 파고를 한 후에 나는 이것을 파이썬 libs의 너무 엄격한 파일 권한으로 지적했습니다 (Centos의 파이썬 설치는 다른 POSIX 시스템과 약간 다릅니다).

따라서 다른 모든 것이 실패하면 virtualenvwrapper를 실행하려는 사용자가 Python 라이브러리를 읽을 수 있는지 확인할 수 있습니다.

특히 확인하십시오 : /usr/lib/python3.6 /usr/lib64/python3.6 (다른 파이썬 버전의 경로를 수정하십시오).

당신이 표시되는 경우 groupothers부족 읽고 추가 한 후 거기에 실행 권한을 : sudo chmod og+rx -R /usr/lib/python3.6 sudo chmod og+rx -R /usr/lib64/python3.6

참고 : 이것이 Centos 보안 정책에 위배되는지 확실하지 않지만 write권한 을주지 않는 한 안전 할 수 있습니다.


0

내 상황 (OS X 10.13.6)에서는 이렇게했습니다.

brew install python2 --upgrade

0

나는 이것과 같은 문제가 있었고 잘못된 것을 구성하는 데 많은 시간을 보냈습니다. 그리고 마침내 무엇이 잘못되었는지 알아 냈습니다.

먼저 virtualenvwrapper 폴더가있는 위치를 찾았습니다. 제 경우에는 /usr/local/lib/python3.7/site-packages. 폴더 안에는 오류를 일으킨 hook_loader.py가 있습니다.

다음으로 파이썬 스크립트를 사용했습니다.

python3

import sys;print('\n'.join(sys.path))

/usr/local/lib/python3.7/site-packages 디렉토리를 찾을 수 없으므로 마침내 썼습니다.

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.7/site-packages

.bashrc 파일로. 끝난.

PYTHON PATH의 의미

위의 링크에서 볼 수 있듯이 PYTHONPATH는 모듈의 기본 검색 경로를 증가시킵니다.

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