No module named virtualenvwrapperが出てしまったので対処


このエントリーをはてなブックマークに追加

virtualenvでpython3を使っている(構築にはpython2.7系を使用していた)

terminalを立ち上げると下記エラーが出るようになった


1
2
3
4
5
6
7
/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.

PATHが正しくないよみたいなエラー、今まで正常につかえていたのと解くにPATH自体は変更していないが出て来るようになった


結論から言うと、Homebrewでpythonをインストールして使用していたのと

Homebrewをアップグレード ($ brew update && brew upgrade) していたのでエラーが出るようになったみたい

参考: HomebrewでインストールされるPython(2)の変更について

たしかに、$ which pip した時に pip が使えなくなっていたのと (名前が pip2 に変更されていた?みたい)

1
2
$ which python
/usr/bin/python

というふうにシステムデフォルトのpython(2系)にPATHが置き換わってしまっていた


HomebrewでインストールされるPython(2)の変更についてに習って下記のように

.bash_profile に一行 PATH の環境を記述すれば、今まで通りのpythonとpipのコマンド名が使えるようになった

1
export PATH="/usr/local/opt/python/libexec/bin:$PATH"


以下は補足としてこれが出てきた経緯

virtualenvでエラーがでるようになった

前述の通り、Terminalを立ち上げた時にエラーが出るようになったのと

Virtualenvでpython3系の環境を構築していて、 $ workon myPythonEnv みたいにpython環境に入ろうとしたときに

1
2
/usr/bin/python: No module named virtualenvwrapper
/usr/bin/python: No module named virtualenvwrapper

みたいなのが出るようになった

検索するとstackoverflowが出てきて、virtualenvをアンインストールしてから再インストールしろとか

PATHを通し直せって出てくるけど

virtualenv - problems with python and virtualenvwrapper after updating: No module named virtualenvwrapper - Stack Overflow

osx - Installed virtualenv and virtualenvwrapper: Python says no module named virtualenvwrapper - Stack Overflow

特にこれで直らなかった


その時に気づいたのが

1
2
$ pip install virtualenv
-bash: pip: command not found

のように pipコマンドがみつかりません って出てくること

今までpipコマンド使えていたのであれ?って思いながら、コンソールで pip まで打ってtabキーを押してみると

1
2
$ pip
pip2 pip2.7 pip3 pip3.6

というふうになんかいままで pip だったのが pip2 に名前が置き換わっていた?みたい

これだと今まで構築していた環境や、使用していたpythonスクリプトなどにも影響を与えかねないのでどうしたものか

何が原因でこうなったのか調べていると下記がひっかかってきた

HomebrewでインストールされるPython(2)の変更について


どうやら、2017年7月14日以降にインストールしたpython

またはpythonをHomebrewでインストールしたものを使っていて、それ以降に brew update && brew upgrade していた場合

pythonのPATHが置き換わってしまっていたらしい

なんでこんな面倒な変更が・・・

といってもしょうがないので、今まで使用していたpython(自分で入れたpython2.7系、upgrade後の現時点でpython2.7.14)を使用するために

.bash_profile に以下を記載することで解決した

(virtualenvを使用する場合は下記のようにsource /usr/local/bin/virtualenvwrapper.shより前にexportの一行を記述すること)

1
2
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
source /usr/local/bin/virtualenvwrapper.sh


あとはTerminalを再起動するか $ source ~/.bash_profile することで今まで通りのpythonが使えるようになり、エラーも無事消すことができた

良かった


このエントリーをはてなブックマークに追加