web-dev-qa-db-ja.com

Pip Installが正しいディレクトリにインストールされていませんか?

次のディレクトリにインストールされるように、Sudo pip installを正しく使用できないようです。

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

pythonを使用してモジュールをインポートできるように

走った

Sudo pip install scikit-learn --upgrade

結果

Requirement already up-to-date: scikit-learn in /usr/local/lib/python2.7/site-packages
Cleaning up...

ただし、正しいディレクトリにありません

Sudo pip installを取得して正しいディレクトリにインストールするにはどうすればよいですか?

さらに、私は試しました

Sudo pip install Scrappy

次のメッセージが表示されます

new-Host-2:site-packages Chris$ Sudo pip install Scrapy
Password:
Requirement already satisfied (use --upgrade to upgrade): Scrapy in /usr/local/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): Twisted>=10.0.0 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): w3lib>=1.8.0 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): queuelib in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/site-packages (from Twisted>=10.0.0->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cryptography>=0.2.1 in /usr/local/lib/python2.7/site-packages (from pyOpenSSL->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python2.7/site-packages (from zope.interface>=3.6.0->Twisted>=10.0.0->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cffi>=0.8 in /usr/local/lib/python2.7/site-packages (from cryptography>=0.2.1->pyOpenSSL->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python2.7/site-packages (from cffi>=0.8->cryptography>=0.2.1->pyOpenSSL->Scrapy)

これらのインスタンスは両方とも、インストールされているが正しくインストールされていないことを示しています。たとえば、Pythonで次のインポートを実行すると:

import scrapy
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-6-51c73a18167b> in <module>()
----> 1 import scrapy

ImportError: No module named scrapy

私は次を試しました:

Sudo ln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
24
Chris

コメントから元の質問まで、Pythonの複数のバージョンがインストールされており、pipは間違ったバージョンに移動しているようです。

まず、使用しているpythonのバージョンを知るには、単にwhich python。次のいずれかが表示されます。

which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

正しいバージョンのpythonを使用する場合、または:

which python
/usr/bin/python

「間違った」バージョンを使用する場合。 pipを適切なバージョンにするには、最初にパスを変更する必要があります。

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

「which python」と入力すると、正しい結果が得られます。次に、pipをインストールします(このPythonのインストール用にまだインストールされていない場合)。最後に、それを使用します。今は大丈夫です。

26
Roy2012

これがWindowsで私にとってうまくいったことです。複数のpythonインストールである原因

  1. 正しいpythonでパスを更新する
  2. python -m pip uninstall pip setuptoolsを使用してpipをアンインストールします
  3. 再起動ウィンドウ再起動するまで機能しませんでした
4
Jabda

Virtualenv はあなたの友達です

プライマリインストールにパッケージを追加する場合でも、他のパッケージとの互換性を確保するために、最初に仮想環境で実行することをお勧めします。ただし、virtualenvに精通していれば、おそらく基本インストールに何かをインストールする理由はないことに気付くでしょう。

3
Wyrmwood

1-動作する可能性のあるもの

pip実行可能ファイルは、実際にはPythonスクリプトです。

デフォルトでは以下が含まれます(Linuxの場合):

#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.5.6','console_scripts','pip'
__requires__ = 'pip==1.5.6'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
    )

したがって、MacOSで同じ場合、pipは常に/usr/bin/pythonを使用します。

しかし、これはデフォルトです。ファイルを編集するか、pythonを明示的に使用することで、希望するpythonのバージョンを引き続き提供できます。

which python/usr/bin/pythonを返す場合、独自のバージョンをインストールしたときに何か問題が発生しました。 /Library/Frameworks/Python.framework/Versions/2.7/bin/pythonの場合、直接呼び出すことができます:

Sudo python `which pip` install scikit-learn --upgrade

ただし、機能しない可能性が高くなります。その理由は、Sudoがすべての環境変数をリセットしているためです。それを機能させるために、最も簡単な方法は次のとおりです。

Sudo -E pip install scikit-learn --upgrade

または

Sudo -E python `which pip` install scikit-learn --upgrade

セットアップによって異なります。

2-あなたがすべきこと

pipは、rootが実行すべきものとは考えられていませんでした。それを使用する実際の最良の方法は、ローカルの非ルート、pythonバージョンをインストールすることです。正しい環境変数を設定することにより、デフォルトで使用することを確認するだけです。 LinuxではPATHとして)、_ = [=]を使用してpipなしでSudoをインストールしますpython version。

さらに良い方法は、ルートインストールからvirtualenvsをセットアップすることです。

この方法で、ルート権限なしで好きなものをインストール/更新でき、Sudo pipが機能しない理由を気にする必要がなくなります。また、Pypi上にあるものにルート権限を付与することを避け、システムライブラリと独自のライブラリを混在させないことを保証します。

2
user1940040

すべてのプロジェクトにカスタム環境を設定できるように、virtualenvを使用することをお勧めします。すべてのプロジェクトで異なる世界のようであり、作成するアプリケーションのすべての更新が他のプロジェクトに干渉しないため、メンテナンスに最適です。

ここで、virtualenvの簡単な説明を見つけることができます インストールと最初のステップに関連しています。

1
Emily
  1. https://pypi.python.org/pypi/pip (tar)でpipをダウンロードします
  2. tarファイルを解凍します
  3. ファイルのディレクトリに移動します
  4. Sudo python2.7 setup.pyインストール
0
salomeow

Shebangラインを変更するだけです。これは常に新しいシステムで行います。

pipをPythonインストール済み)の現在のバージョンにインストールする場合は、Shbang行を正しいバージョンのpythonsパスに更新するだけです。

たとえば、pip(pip3ではなく)をPython 3:

#!/usr/bin/python

に:

#!/usr/bin/python3

pipを使用してインストールするモジュールは、PythonではなくPythonにインストールする必要があります。

または、パスを変更することもできます。

0
user9950741