次のディレクトリにインストールされるように、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/
コメントから元の質問まで、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のインストール用にまだインストールされていない場合)。最後に、それを使用します。今は大丈夫です。
これがWindowsで私にとってうまくいったことです。複数のpythonインストールである原因
python -m pip uninstall pip setuptools
を使用してpipをアンインストールしますVirtualenv はあなたの友達です
プライマリインストールにパッケージを追加する場合でも、他のパッケージとの互換性を確保するために、最初に仮想環境で実行することをお勧めします。ただし、virtualenvに精通していれば、おそらく基本インストールに何かをインストールする理由はないことに気付くでしょう。
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
セットアップによって異なります。
pip
は、root
が実行すべきものとは考えられていませんでした。それを使用する実際の最良の方法は、ローカルの非ルート、pythonバージョンをインストールすることです。正しい環境変数を設定することにより、デフォルトで使用することを確認するだけです。 LinuxではPATH
として)、_ = [=]を使用してpip
なしでSudo
をインストールしますpython version。
さらに良い方法は、ルートインストールからvirtualenv
sをセットアップすることです。
この方法で、ルート権限なしで好きなものをインストール/更新でき、Sudo pip
が機能しない理由を気にする必要がなくなります。また、Pypi上にあるものにルート権限を付与することを避け、システムライブラリと独自のライブラリを混在させないことを保証します。
すべてのプロジェクトにカスタム環境を設定できるように、virtualenvを使用することをお勧めします。すべてのプロジェクトで異なる世界のようであり、作成するアプリケーションのすべての更新が他のプロジェクトに干渉しないため、メンテナンスに最適です。
ここで、virtualenvの簡単な説明を見つけることができます インストールと最初のステップに関連しています。
Shebangラインを変更するだけです。これは常に新しいシステムで行います。
pip
をPythonインストール済み)の現在のバージョンにインストールする場合は、Shbang行を正しいバージョンのpythonsパスに更新するだけです。
たとえば、pip(pip3ではなく)をPython 3:
#!/usr/bin/python
に:
#!/usr/bin/python3
pip
を使用してインストールするモジュールは、PythonではなくPythonにインストールする必要があります。
または、パスを変更することもできます。