web-dev-qa-db-ja.com

Python Virtualenv-virtualenvwrapper.hook_loaderという名前のモジュールはありません

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

助けていただければ幸いです。

75
Thomas Kremmel

この問題は以下の手順に従って解決されました。

#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を再インストールします。これは、新しいpythonバージョンで適切に動作するために明らかに必要です。

Sudo sh setuptools-0.6c11-py2.7.Egg

Sudo easy_install-2.7 pip

pip install virtualenv
51
Thomas Kremmel

また、macportsがある場合は、/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`
22
reubano

私の場合、この行を.zshrcファイルに追加するとうまくいきました。

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

これは私に起こり、pipを再インストールすることで解決しました。起こったのは、which pipが結果として/usr/bin/pipを与え、which python/usr/local/bin/pythonを与えたということです。 pipのパスは/usr/local/bin/pipである必要があります。これはおそらく、Pythonインストールを更新したときに壊れました。

pipのドキュメントに従って を実行すると、現在の作業Pythonセットアップ用にpipを簡単に再インストールできます。必要がある:

  1. get-pip.py スクリプト(pipのドキュメントから直接リンク)をダウンロードします。
  2. python get-pip.pyを実行します。

これで問題は解決しました。

4
Omar Trejo

buntu 18.04およびPython 3 +を使用している人にとっては、これが私にとってのトリックでした:

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

このエラーを引き起こす可能性のあるものがいくつかあります。環境が

  • python3からepel-releaseがインストールされたCentOS 7
  • pip3とともにインストールされるpython3.4 get-pip.py
  • virtualenvwrapperpip3とともにインストールされます
  • mkvirtualenv -p /usr/bin/python3.4で作成されたpython仮想環境

その後、何らかの理由で、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
3
drs

/ usr/local/bin/pythonが存在することを確認する必要がありました。

私にとっては簡単でした:

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

同じエラーが発生します。古いバージョンのpipがあることがわかりました。 pipをアップグレードするだけでエラーを修正しました。

1
Chinmay Das

私はこれと同じ問題を抱えていて、何が間違っているかを構成するのに多くの時間を費やしました。そして、何が間違っていたかをようやく見つけました。

最初に、virtualenvwrapperフォルダーが存在する場所を探しました。私の場合、/ usr/local/lib/python3.7/site-packages。フォルダー内には、エラーの原因となったhook_loader.pyがあります。

次に、pythonスクリプトを使用しました。

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はモジュールのデフォルトの検索パスを拡張します。

0
MeNinLes

Conda/Anacondaプロジェクトをインストールした後、同様の問題が発生しました。この質問は、MACに関する私の問題を解決するのに非常に役立ちました。問題を解決するには、次のような.zshrc関連部分がありました。

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

これは、私がcondaをインストールした場所に依存しており、あなた自身のケースでそれを理解する必要があります。 anacondaのインストール場所に応じて特定の環境の詳細を取得するには、次を使用できます。

$  ~/ -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
ArdentLearner

Centos 7.4でこの問題にぶつかりました。

上記の回答はどれも私の場合に適していません。かなり掘り下げた後、これをpython libsの厳しすぎるファイル許可に特定しました(Centosでのpythonインストールは他のPOSIXシステムとは少し異なると思います)。

したがって、他のすべてが失敗した場合は、virtualenvwrapperを実行しようとしているユーザーがpython libsを読み取れるかどうかを確認する必要があります。

特にチェック:/usr/lib/python3.6 /usr/lib64/python3.6(異なるpythonバージョンのパスを修正)。

groupothersに読み取り権限と実行権限がないことがわかったら、それらを追加します:Sudo chmod og+rx -R /usr/lib/python3.6 Sudo chmod og+rx -R /usr/lib64/python3.6

注:これがCentosセキュリティポリシーに対して機能するかどうかはわかりませんが、writeの許可を与えない限り、おそらく安全です。

0
user3837712

python 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
Ben

私の状況(OS X 10.13.6)では、これでできました

brew install python2 --upgrade
0
Jay

アンインストール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を再インストールしても再作成されません。代わりに、アンインストールするときにpurge the virtualenvwrapperパッケージを使用する必要があります。 Debianの場合:

apt-get remove --purge virtualenvwrapper
0
Mike

virtualenvvirtualenvwrapperをアンインストールし、バージョン2.7のpipを使用して再度インストールしてみてください(と思います)。

同じエラーが発生しましたが、これを実行して問題を解決しました。

私はUを使用しています

0
manilaT

受け入れられた答えがあったとしても、私はそれを修正したものを置くと思った。

最初に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
Skepi