web-dev-qa-db-ja.com

Mac OS Xのvirtualenvの問題

virtualenv経由でpipをインストールしましたが、新しい環境を作成した後にこのエラーが発生します。

Selenium:~ auser$ virtualenv new  
New python executable in new/bin/python  
ERROR: The executable new/bin/python is not functioning  
ERROR: It thinks sys.prefix is u'/System/Library/Frameworks/Python.framework/    Versions/2.6' (should be '/Users/user/new')  
ERROR: virtualenv is not compatible with this system or executable  

私の環境では:

PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages  
PATH=/System/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin  

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

ありがとう。

41
gigimon

virtualenvで引き続き問題が発生する場合は、代わりに pythonbrew を試してください。これは、同じ問題に対する代替ソリューションです。これは、Rubyの rvm のように機能します。$HOME/.pythonbrewの下にPythonのインスタンス全体を構築および作成し、バージョン間で簡単に切り替えることができるbash関数を設定します。 virtualenvは、ソリューションの一部としてシンボリックリンクを使用して、Pythonのシステムバージョンをシャドウしますが、pythonbrewは完全に自己完結型のPythonのインストールを構築します。

何年もvirtualenvを使用しました。それはまともな解決策ですが、最近pythonbrewに切り替えました。完全に自己完結型のPythonインスタンスがあるということは、新しいインスタンスのインストールには時間がかかることを意味します(pythonbrewは実際にPythonをゼロからコンパイルします)各インストールの自己完結型の性質は私にとって魅力的であり、ディスクは安価です。

0
Brian Clapper

まだ誰かが答えを探している場合に備えて。

今日同じ問題にぶつかりましたが、Anacondaが既にインストールされているので、pip install virtualenv仮想環境をインストールします。これにより、後で開始しようとしたときにエラーメッセージが表示されます。代わりに、conda install virtualenv次に入力virtualenv env_mysiteおよび問題は解決しました。

109
wastetime909

将来、誰かがこの問題に遭遇した場合-これは、デフォルトのPythonディストリビューションがcondaであるために発生します。Condaには独自の仮想環境があります セットアッププロセス pythonのconda分布があり、それでもvirtualenvを使用したい場合は次のようにします。

  1. 他のpythonマシン上のディストリビューションを見つける:_ls -ls /usr/bin/python*_

  2. 利用可能なpython condaでないバージョンに注意して、以下のコードを実行します(python 3以降ではvirtualenvを最初にアップグレードする必要があります):virtualenv -p python2.7(or your python version) flaskapp

6
Hans Ziqiu Li

前述の@RyanWilcoxのように、誤ってvirtualenvを間違ったPythonインストールに指定している可能性があります。Virtualenvには、使用するインタープリターを指定できる-pフラグがあります。

私の場合、

virtualenv test_env

あなたと同じエラーを投げましたが、

virtualenv -p python test_env

完璧に機能しました。

virtualenv -hを呼び出すと、-pフラグのドキュメントから、どのpython使用すべきだと考えられているかがわかります。奇妙な場合は、-p python。参考のため、virtualenv 1.11.6を使用しています。

5
kronosapiens

私は自分でこの問題に出くわしました。以下に貼り付けたREADMEに手順を書き留めました。

動作するものが2つあることがわかりました。

  1. 最新のvirtualenv(この記述の1.5.1)を実行していることを確認してください
  2. 非システムを使用している場合Pythonを標準としてPython(which python確認する)システムを強制的に使用する提供されたもの。

    の代わりに virtualenv thing 使用する /usr/bin/python2.6 PATH/TO/VIRTUALENV thing(またはwhich pythonはあなたに戻ってきた-これは私がこの問題に出くわしたときに私のためにしたことです)

4
RyanWilcox

私は同じ問題を抱えていて、今見ているように、厄介なPythonインストールにより発生しました。新しいノートパソコンを購入してから1年以上OS Xをインストールしました。再インストールPython異なるソース(公式バイナリ、homebrew、公式バイナリ+記述された手作りの調整 ここ )を使用して何度か。なぜ私に尋ねないでください。それをやった、私はただの悲惨な初心者であり、すべてが再インストールされた後に修正されると信じている。

そのため、あちこちにさまざまなPythonがインストールされており、それらを一貫して指す多くのハードリンクもありました。最終的に私はそれらのすべてにうんざりし、 oS Xを再インストールした findユーティリティを使用して見つけたすべてのPythonからシステムを慎重に削除しました。また、どこからでも何でもPythonを指すすべてのリンクのリンクを解除しました。それから、homebrewを使用して新鮮なPython今の魅力。

だから、私のレシピは:

Sudo find / -iname "python*" > python.log

次に、このファイルを分析し、Python必要なPython $ ===のバージョンに関連するすべてのものを削除してリンク解除します。homebrewで行いました。公式インストールでも動作します)をお楽しみください。 /usr/binおよび/usr/local/binからのPython関連のすべて、およびFrameworks/Python.framework/Versions/<Your.Version>および/Library内の/System/Libraryのすべてのインスタンスを削除します。

それは汚いハックかもしれませんが、私にとってはうまくいきました。システム全体でPython pipvirtualenv以外のライブラリを保持し、すべてのプロジェクトの仮想環境を作成しないため、気にしません重要なライブラリを削除する:すべてを削除したくない場合は、Pythonが何であるか、どのリンクがそれらを指し、どこから来ているのかを理解してください。

Virtualenvを動作させるために、次の手順を実行しました。

次のようにvirtualenvを更新します。

==> Sudo pip install --upgrade virtualenv

Python3 virtualenvを初期化します。

==> virtualenv -p python3 venv
1
Das

上記の解決策は私にとっては失敗しましたが、以下はうまくいきました:

python3 -m venv --without-pip <ENVIRONMENT_NAME>
. <ENVIRONMENT_NAME>/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
deactivate

それはハッキーですが、はい、コアの問題は本当にピップのように見えました。

1
Jerry Schirmer

この「機能していない」エラーのバリエーションに遭遇しました。私は実際に「/ Users/eric/Documents/Programming:Developing /」であるパス「.../Programming/Developing ...」を含むフォルダーに環境を作成しようとしていました。

このエラーが発生しました:

ImportError: No module named site
ERROR: The executable env/bin/python2.7 is not functioning
ERROR: It thinks sys.prefix is u'/Users/eric/Documents/Programming:Developing/heroku' (should be u'/Users/eric/Documents/Programming:Developing/heroku/env')
ERROR: virtualenv is not compatible with this system or executable

私は別のフォルダで同じことを試してみましたが、正常に機能し、エラーはなく、env/binには期待どおりのものがあります(アクティブ化など)。

1
E Negron

同じ問題が発生し、python実行可能ファイル名を適切に指定しないと発生することがわかりました。たとえば、python 2xの場合:

virtualenv --system-site-packages -p python mysite

ただし、python 3.6の場合、python3.6のような実行可能ファイル名を指定する必要があります

virtualenv --system-site-packages -p python3.6 mysite

1
A. K.

ターミナルを開いて/Library/Frameworks/Python.framework/Versions/と入力します

次に、Python2(またはその他の)を使用している場合はls /Library/Frameworks/Python.framework/Versions/2.7/bin/と入力します。

〜/ .bash_profileを編集し、次の行を追加します:export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

cat ~/.bash_profile

私の場合、〜/ .bash_profileの内容は次のとおりです。

export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/2.7/bin/

これでvirtualenvコマンドが機能するはずです。

0
hygull

私もこの問題を抱えていたので、私に合った次の方法を試しました。

conda install virtualenv

virtualenv --system-site-packages /anaconda/envs/tensorflow(ここでenvsはユーザーが作成したすべての仮想環境を保持します)

source /anaconda/envs/tensorflow/bin/activate

お役に立てば幸いです。

0
Nicole

これと同じ問題が発生し、問題が古いvirtualenv.pyファイルにあったことを確認できます。

install --upgrade全体を実行する必要はありませんでした。

virtualenv.pyファイルを最新のバージョンで置き換えます。

0
haxtar