4

Homebrew を使用して Python をインストールしました。コマンドを使用しましたbrew install python(前提条件であるXQuartzをインストールした後)。

このページ - https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python - は次のことを教えてくれます:

問題

標準の Homebrew インストールを想定すると、Prefix は に /usr/localなり、Cellar は になります/usr/local/Cellar

Homebrew は、標準の を使用して Python を Cellar にインストールします./configure --prefix=#{prefix}

これにより、次が設定されます。

  • 「site-packages」フォルダーを /usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages.
  • 「install-scripts」フォルダーを/usr/local/Cellar/python/2.7.3/bin.

サイト パッケージが Python の Cellar にある場合、ユーザーがインストールしたパッケージは Python の更新の間に消去されます。install-scripts についても同様ですが、ユーザーが手動で Python の cellar bin フォルダーをパスに追加する必要があるという追加の問題があります。

解決

Homebrew は、これらの問題に対処するために、インストール時に 2 つのアクションを実行します。

  • 最初に、Cellar サイト パッケージ フォルダーが削除さ /usr/local/lib/python2.7/site-packagesれ、プレフィックス内の へのシンボリック リンクが作成されます。Homebrew は、ユーザーがインストール可能なライブラリに lib を使用する一部の言語に対して特別な処理を行うため、これにより、Python の更新間でサイト パッケージを永続化できます。

  • 次に、distutils.cfginstall-scripts フォルダーを に設定するファイルが書き込まれます/usr/local/share/python。ユーザーは に追加 /usr/local/share/pythonして、PATHインストールされたスクリプトを取得できます。

私が理解できないのは、「Cellar サイト パッケージ フォルダーが削除さ /usr/local/lib/python2.7/site-packagesれ、プレフィックス内のシンボリック リンクが作成される」という行です。「プレフィックス」(「/usr/local」であることがわかります)を見ると、シンボリックリンクが表示されません。参照されているこのシンボリックリンクはどこですか?

私が混乱している理由の 1 つは、実行するpip install virtualenvwrapperと次のような出力が得られることです。/Library/Python/2.7/site-packagesこのディレクトリがどこから来たのか、なぜ参照されるのかわかりません。

そうは言ってpip install virtualenvwrapperも、問題なく終了するようで、sudo は必要ありません。これは、Homebrew を使用したインストールの利点の 1 つになるはずです。の出力全体pip install virtualenvwrapperは次のとおりです。

virtualenvwrapper のダウンロード/解凍
  パッケージ virtualenvwrapper の setup.py egg_info の実行

virtualenv のダウンロード/解凍 (virtualenvwrapper から)
  virtualenv-1.8.2.tar.gz (2.2MB) のダウンロード: 2.2MB をダウンロード
  ./Library/Caches/pip-downloads/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fv%2Fvirtualenv%2Fvirtualenv-1.8.2.tar.gz のキャッシュにダウンロードを保存しています
  パッケージ virtualenv の setup.py egg_info の実行

    警告: ディレクトリ 'docs/_templates' の下に '*' に一致する以前に含まれていたファイルが見つかりませんでした
    警告: ディレクトリ 'docs/_build' の下に '*' に一致する以前に含まれていたファイルが見つかりませんでした
要件はすでに満たされています (アップグレードするには --upgrade を使用します): virtualenv-clone in /Library/Python/2.7/site-packages (virtualenvwrapper から)
要件はすでに満たされています (アップグレードするには --upgrade を使用します): /Library/Python/2.7/site-packages の stevedore (virtualenvwrapper から)
要件はすでに満たされています (アップグレードするには --upgrade を使用します): /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg に配布します (stevedore->virtualenvwrapper から)
収集したパッケージのインストール: virtualenvwrapper、virtualenv
  virtualenvwrapper の setup.py install の実行

    /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper/__init__.py (名前空間パッケージ) のインストールをスキップする
    /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenvwrapper-3.6-py2.7-nspkg.pth のインストール
    /usr/local/share/python/virtualenvwrapper.sh のモードを 755 に変更する
    /usr/local/share/python/virtualenvwrapper_lazy.sh のモードを 755 に変更する
  virtualenv の setup.py install の実行

    警告: ディレクトリ 'docs/_templates' の下に '*' に一致する以前に含まれていたファイルが見つかりませんでした
    警告: ディレクトリ 'docs/_build' の下に '*' に一致する以前に含まれていたファイルが見つかりませんでした
    /usr/local/share/python への virtualenv スクリプトのインストール
    /usr/local/share/python への virtualenv-2.7 スクリプトのインストール
virtualenvwrapper virtualenv が正常にインストールされました
清掃...
4

1 に答える 1

0

更新されたドキュメントから:

Python 2.7.x の場合、/usr/local/lib/python2.7/site-packages にあります。

Python 2.7 は、以下のモジュールも検索します。

/ライブラリ/Python/2.7/サイトパッケージ

~/ライブラリ/Python/2.7/lib/python/site-packages

そのため、/Library/Python2:7/site-packages に以前にインストールしたパッケージのエコーがあった可能性があります。

Homebrew は最近 1.0 になりました。あなたが質問してから多くのことが変わりました。

于 2016-10-09T06:52:31.233 に答える