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
助けていただければ幸いです。
この問題は以下の手順に従って解決されました。
#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
また、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`
私の場合、この行を.zshrcファイルに追加するとうまくいきました。
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7
これは私に起こり、pip
を再インストールすることで解決しました。起こったのは、which pip
が結果として/usr/bin/pip
を与え、which python
が/usr/local/bin/python
を与えたということです。 pip
のパスは/usr/local/bin/pip
である必要があります。これはおそらく、Pythonインストールを更新したときに壊れました。
pipのドキュメントに従って を実行すると、現在の作業Pythonセットアップ用にpip
を簡単に再インストールできます。必要がある:
pip
のドキュメントから直接リンク)をダウンロードします。python get-pip.py
を実行します。これで問題は解決しました。
buntu 18.04およびPython 3 +を使用している人にとっては、これが私にとってのトリックでした:
which python3 # outputs /usr/bin/python3
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source `which virtualenvwrapper.sh`
このエラーを引き起こす可能性のあるものがいくつかあります。環境が
python3
からepel-release
がインストールされたCentOS 7pip3
とともにインストールされるpython3.4 get-pip.py
virtualenvwrapper
はpip3
とともにインストールされます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
/ usr/local/bin/pythonが存在することを確認する必要がありました。
私にとっては簡単でした:
ln -s /usr/local/bin/python2.7 /usr/local/bin/python
同じエラーが発生します。古いバージョンのpipがあることがわかりました。 pipをアップグレードするだけでエラーを修正しました。
私はこれと同じ問題を抱えていて、何が間違っているかを構成するのに多くの時間を費やしました。そして、何が間違っていたかをようやく見つけました。
最初に、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ファイルに。できた.
上記のリンクでわかるように、PYTHONPATHはモジュールのデフォルトの検索パスを拡張します。
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のアンインストールとインストールを忘れないでください。
Centos 7.4でこの問題にぶつかりました。
上記の回答はどれも私の場合に適していません。かなり掘り下げた後、これをpython libsの厳しすぎるファイル許可に特定しました(Centosでのpythonインストールは他のPOSIXシステムとは少し異なると思います)。
したがって、他のすべてが失敗した場合は、virtualenvwrapperを実行しようとしているユーザーがpython libsを読み取れるかどうかを確認する必要があります。
特にチェック:/usr/lib/python3.6 /usr/lib64/python3.6
(異なるpythonバージョンのパスを修正)。
group
とothers
に読み取り権限と実行権限がないことがわかったら、それらを追加します:Sudo chmod og+rx -R /usr/lib/python3.6 Sudo chmod og+rx -R /usr/lib64/python3.6
注:これがCentosセキュリティポリシーに対して機能するかどうかはわかりませんが、write
の許可を与えない限り、おそらく安全です。
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へのパスの「ローカル」が長期的に私にどのような影響を与えるかわからないのは初心者ですが、今のところは動作します。
私の状況(OS X 10.13.6)では、これでできました
brew install python2 --upgrade
アンインストール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
virtualenv
とvirtualenvwrapper
をアンインストールし、バージョン2.7のpip
を使用して再度インストールしてみてください(と思います)。
同じエラーが発生しましたが、これを実行して問題を解決しました。
私はUを使用しています
受け入れられた答えがあったとしても、私はそれを修正したものを置くと思った。
最初に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の別の部分に挿入しましたが、起動時にエラーが続きました。