私は、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.
どうすれば修正できますか?
別の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
を実行して新しい変数をリロードします
最近のHomebrewの更新後も同じ問題が発生しました。
過去には、ほとんどの人が_pip install virtualenvwrapper
_をシステムサイトパッケージに実行し、機能していました。
Homebrewはこのワークフローを1)システムpythonをシャドーイングしなくなり、2)pipを_pip2/pip3
_にシンボリックリンクしなくなりました。
ほとんどのユーザーは、pip
が見つからないときにこれを認識し、_pip2/pip3
_を使用しようとします。ただし、virtualenvwrapper
はpython
ではなく_pip2/pip3
_にインストールされるため、_python2/python3
_を使用すると問題が発生します。したがって、virtualenvwrapper
を実行してpythonを呼び出すと、システムpythonのサイトパッケージで_virtualenvwrapper/virtualenv
_ pythonパッケージが見つかりません。
_VIRTUALENVWRAPPER_PYTHON
_を明示的に設定するのが最もクリーンな修正であり、ハックではありません。ドットファイルでどのようにしたか
_export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
_
Brewを使用してpythonをインストールする場合、次の環境変数を設定する必要があります。
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
bash_profile(または使用しているシェル)で。
ジョンのアドバイスに従って、私は走りました:
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を使用します。
ジョンありがとう!