80

MacOS10.6.8を実行しています。python2.6に加えてpython2.7もインストールし、新しいvirtualenvでpython2.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

どんな助けでもいただければ幸いです。

4

16 に答える 16

53

この問題は、以下の手順で解決されました。

#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コマンドの前に配置されるようにexportコマンドを再配置します。

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、easy install、PIPを再インストールします。これは、新しいPythonバージョンで正しく動作するために明らかに必要です。

sudo sh setuptools-0.6c11-py2.7.egg

sudo easy_install-2.7 pip

pip install virtualenv
于 2012-07-16T21:06:47.767 に答える
23

また、macportsをお持ちの場合は、PATH/opt/local/Library/Frameworks/Python.framework/Versions/2.7/binの前/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`
于 2013-09-05T05:00:25.877 に答える
14

Ubuntu18.04Python3+を使用している人にとって、これは私にとってトリックでした:

which python3 # outputs /usr/bin/python3 
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3  
source `which virtualenvwrapper.sh`  
于 2019-01-07T01:10:53.600 に答える
9

私の場合、この行を.zshrcファイルに追加すると、うまくいきました。

export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7
于 2017-04-21T18:03:48.693 に答える
4

これは私に起こりました、そして私は再インストールすることによってそれを解決しましたpip。何が起こったのかというと、結果としてwhich pip与えられたのに対し、与えられたのです。のパスはです。Pythonのインストールを更新したときに、これが壊れた可能性があります。/usr/bin/pipwhich python/usr/local/bin/pythonpip/usr/local/bin/pip

pipのドキュメントに従えpip、現在動作しているPythonセットアップを簡単に再インストールできます。必要がある:

  1. get-pip.pyスクリプトをダウンロードします(のドキュメントから直接リンクされていpipます)。
  2. を実行しますpython get-pip.py

これで問題は解決しました。

于 2015-04-21T03:58:32.473 に答える
3

このエラーを引き起こす可能性のあるものはたくさんあります。ご使用の環境が

  • CentOS 7 python3epel-release
  • pip3でインストールpython3.4 get-pip.py
  • virtualenvwrapperでインストールpip3
  • で作られたPython仮想環境mkvirtualenv -p /usr/bin/python3.4

次に、何らかの理由で、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
于 2016-01-27T16:30:46.410 に答える
2

/ usr / local / bin/pythonが存在することを確認する必要がありました。

私にとってそれは単純でした:

ln -s /usr/local/bin/python2.7 /usr/local/bin/python
于 2017-08-13T22:14:54.547 に答える
1

同じエラーが発生します。古いバージョンのpipがあることがわかりました。ピップをアップグレードするだけでエラーを修正しました。

于 2016-12-27T08:07:26.250 に答える
0

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へのパスにある「ローカル」が長期的にどのように影響するかわからないのは初心者ですが、今のところは機能します。

于 2016-01-23T20:54:10.967 に答える
0

パッケージをアンインストールした後、この問題が発生しました。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のパッケージです。virtualenvwrapperDebianでこのように:

apt-get remove --purge virtualenvwrapper
于 2016-07-06T19:43:58.480 に答える
0

をアンインストールして、バージョン2.7を使用して再インストールしvirtualenvてみてください(私は思います)。virtualenvwrapperpip

同じエラーが発生しましたが、これを実行して問題を解決しました。

Uを使っています

于 2017-01-18T05:33:28.710 に答える
0

受け入れられた答えがありますが、私はそれを修正するものを置くと思いました。

最初に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の別の部分に挿入しましたが、起動時にエラーが解決しませんでした。

于 2017-08-23T14:55:47.423 に答える
0

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をアンインストールしてインストールすることを忘れないでください。

于 2018-01-22T15:45:22.367 に答える
0

Centos7.4でこの問題にぶつかったところです。

上記の答えはどれも私の場合には合いませんでした。かなり掘り下げた後、私はこれをpython libsのファイルパーミッションが厳しすぎることを特定しました(Centosへのpythonのインストールは他のPOSIXシステムとは少し異なると思います)。

したがって、他のすべてが失敗した場合は、virtualenvwrapperを実行しようとしているユーザーがPythonライブラリを読み取れることを確認することをお勧めします。

特にチェック してください:( /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

于 2018-05-28T09:32:13.593 に答える
0

私の状況(OS X 10.13.6)では、これはそれを行いました

brew install python2 --upgrade
于 2018-09-15T18:15:25.757 に答える
0

私はこれと同じ問題を抱えていて、何が悪いのかを構成するのに多くの時間を費やしました。そしてついに何が悪かったのかがわかりました。

まず、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の意味

上記のリンクでわかるように、PYTHONPATHはモジュールのデフォルトの検索パスを拡張します。

于 2019-05-30T09:06:28.823 に答える