1. ホーム
  2. Python

virtualenvwrapperのコンフィギュレーションエラー

2022-02-12 12:29:14
1. virtualenvをインストールする
sudo pip install virtualenv
2. virtualenvwrapperをインストールする
sudo pip install virtualenvwrapper

デフォルトでは、virtualenvwrapper は /usr/local/bin ディレクトリーにインストールされますので、ユーザーの .bsharc ファイルに以下の設定を追加することが必要です。
# 1. Create a directory to hold the virtual environments.
# (mkdir $HOME/.virtualenvs). 2.
# 2. Add a line like "export WORKON_HOME=$HOME/.virtualenvs"
# to your .bashrc. 3.
# 3. Add a line like "source /path/to/this/file/virtualenvwrapper.sh"
# to your .bashrc. 4.
# 4. run: source ~/.bashrc
# 5. run: workon
# 6. A list of environments, empty, is printed.
# 7. Run: mkvirtualenv temp
# 8. run: workon
# 9. This time, the "temp" environment is included.
# 10. Run: workon temp
# 11. The virtual environment is activated.

この手順で、ソースを実行すると./.bashrc を実行すると、エラーが発生します。
/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.


エラーの原因 Ubuntuはpythonの2.7と3.xの両方のバージョンをインストールしており、インストール時にsudo pip3 install virtualenvwrapperが使用されています。
実行すると、デフォルトでpython2.xを使用しますが、python2.x用のモジュールはありません(virtualenvwrapper.shファイルには次のように記述されています)。
# Locate the global Python where virtualenvwrapper is installed.
if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ] then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi





VIRTUALENVWRAPPER_PYTHON環境が存在しない場合、デフォルトでどのpythonが選択されるか(ここでは、python2をデフォルトとしています)。

そこで、この環境変数を追加する必要があります。

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3