web-dev-qa-db-ja.com

「virtualenvwrapper」というモジュールはありません

私は、Ubuntu 14.04 LTSインスタンスを使用してAmazon EC2でDjangoプロジェクトをセットアップする作業をしています。Python 3。これを行う最善の方法はvirtualenvwrapperを使用することであるとアドバイスされました。virtualenvwrapperを正常にインストールし、

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

私の.bashrcファイル。わかりました:

 /usr/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (<class 'ImportErro
 r'>: 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/python3.4 and that PATH is
 set properly.

どうすれば修正できますか?

27
user61629

別のpythonインタープリターを-pフラグで指定する代わりに、デフォルトとして目的のインタープリターを設定することもできます。

virtualenvwrapperの-​​ ドキュメント によれば、virtualenvwrapper.sh$PATHで最初のpythonおよびvirtualenvプログラムを見つけて、後で使用します。

virtualenvwrapperがOSのデフォルトpythonインタープリター(/usr/bin/python)]にインストールされていない場合は、以下のように環境変数をオーバーライドしてください。

  • VIRTUALENVWRAPPER_PYTHONをpythonインタープリターのフルパスに
  • VIRTUALENVWRAPPER_VIRTUALENVをvirtualenvのフルパスに

たとえば、私の.bash_profile(Mac)の場合:

#virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenv
source /Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenvwrapper.sh

source ~/.bash_profileを実行して新しい変数をリロードします

24
tropicalfish

最近のHomebrewの更新後も同じ問題が発生しました。

過去には、ほとんどの人が_pip install virtualenvwrapper_をシステムサイトパッケージに実行し、機能していました。

Homebrewはこのワークフローを1)システムpythonをシャドーイングしなくなり、2)pipを_pip2/pip3_にシンボリックリンクしなくなりました。

ほとんどのユーザーは、pipが見つからないときにこれを認識し、_pip2/pip3_を使用しようとします。ただし、virtualenvwrapperpythonではなく_pip2/pip3_にインストールされるため、_python2/python3_を使用すると問題が発生します。したがって、virtualenvwrapperを実行してpythonを呼び出すと、システムpythonのサイトパッケージで_virtualenvwrapper/virtualenv_ pythonパッケージが見つかりません。

_VIRTUALENVWRAPPER_PYTHON_を明示的に設定するのが最もクリーンな修正であり、ハックではありません。ドットファイルでどのようにしたか

_export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
_
7
Ninad P

Brewを使用してpythonをインストールする場合、次の環境変数を設定する必要があります。

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python

bash_profile(または使用しているシェル)で。

4
enderland

ジョンのアドバイスに従って、私は走りました:

 ubuntu@ip-172-31-22-65:~$ mkvirtualenv -p /usr/bin/python3.4 env1
 Running virtualenv with interpreter /usr/bin/python3.4
 Using base prefix '/usr'
 New python executable in env1/bin/python3.4
 Also creating executable in env1/bin/python
 Installing setuptools, pip...done.
 (env1)ubuntu@ip-172-31-22-65:~$ deactivate
 ubuntu@ip-172-31-22-65:~$ ls
 ubuntu@ip-172-31-22-65:~$ ls -a
 .  ..  .bash_history  .bash_logout  .bashrc  .cache  .pip  .profile  .ssh  .virtualenvs
 ubuntu@ip-172-31-22-65:~$ workon
 env1
 ubuntu@ip-172-31-22-65:~$ workon env1
 (env1)ubuntu@ip-172-31-22-65:~$ which python
 /home/ubuntu/.virtualenvs/env1/bin/python
 (env1)ubuntu@ip-172-31-22-65:~$  python -V
 Python 3.4.0

上記のように.bashrcを残しました。 Jonが前述したように、virtualenvwrapperのインストールはデフォルトのpythonにインストールされ、-pフラグを使用して別のpythonインタープリターを指定しない限り、作成するvirtualenvでデフォルトのpythonを使用します。

ジョンありがとう!

2
user61629