今夜、私は「リクエスト」と呼ばれるパッケージをインストールしようとしており、ターミナルをいじくり始めており、この種のことに関してはあまり直感がありません。
コンピューターはmac mini、osxバージョン10.9.4です
/ Library/Pythonには4つのフォルダーがあります:2.3 2.5 2.6および2.7。
/Applicationsには「Python 2.7」と「Python 3.4」があります
IDLEを開いて8 + 8と入力すると、16が表示されます。
これは私がターミナルで取得しているエラーです:
Host-210-117:~ Mario$ python
ImportError: No module named site
Host-210-117:~ Mario$ pip
ImportError: No module named site
私の目標は、ターミナルでこのコマンドを実行することです。
pip install requests
Pipは既にインストールされていると思います。 IDLEで「get-pip.py」ファイルを実行すると、次のように表示されます。
Requirement already up-to-date: pip in /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg Cleaning up...
これはパスと関係があるのでしょうか?いくつかのガイダンス/ヒント/ヒントをありがとう、ありがとう!
ああ、この質問の解決に役立つかもしれないもう少し情報。実行中のプログラムの最初の数行は次のとおりです。
import base64
import hmac
import json
import requests
import time
import urllib
import os
IDLEでこのエラーが発生します(最初のいくつかのパッケージを問題なくインポートしていますか?):
>>>
Traceback (most recent call last):
File "/Users/Mario/Desktop/pyak/pyak.py", line 4, in <module>
import requests
ImportError: No module named requests
>>>
*****システムパスリスト:
sys.path ['/Users/Mario/Desktop/pyak'、'/Users/Mario/Documents'、'/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg'、 ' /ライブラリ/Frameworks/Python.framework/Versions/2.7/lib/python27.Zip'、'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7'、'/Library/Frameworks/Python.framework /Versions/2.7/lib/python2.7/plat-darwin'、'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac'、'/Library/Frameworks/Python.framework /Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages'、'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk'、'/Library/Frameworks /Python.framework/Versions/2.7/lib/python2.7/lib-old'、'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload'、'/Library/Frameworks /Python.framework/Versions/2.7/lib/python2.7/site-packages'、'/Library/Python/2.7/site-packages ']
***別の更新:
Host-210-117:~ Mario$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
***もう少し情報(これは起こるはずですか?)
Host-210-117:~ Mario$ which pip
/usr/local/bin/pip
Host-210-117:~ Mario$ pip
ImportError: No module named site
*** .bashrcを変更した後
.bashrc:ファイルの内容
export PATH = "$ PATH:$ HOME/.rvm/bin"#スクリプト用にRVMをPATHに追加
alias python =/Library/Python/2.7/python
実行の出力はここにあります:
pip install requests
Host-210-117:〜Mario $ pipインストールリクエスト
リクエストのダウンロード/解凍
リクエストのダウンロード-2.4.1-py2.py3-none-any.whl(458kB):458kBがダウンロードされました
収集したパッケージのインストール:リクエスト
清掃...
例外:
トレースバック(最新の通話は最後):
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/basecommand.py"、122行目、main status = self.run(options、 args)
ファイル「/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/commands/install.py」、行283、実行require_set.install(install_options、 global_options、root = options.root_path)
ファイル「/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/req.py」、インストール要件の1435行目、install(install_options、global_options、 * args、** kwargs)
ファイル「/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/req.py」、行671、self.move_wheel_files(self.source_dir、 root = root)ファイル「/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/req.py」、901行目、move_wheel_files pycompile = self.pycompile、
ファイル「/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/wheel.py」、215行目、move_wheel_files clobber(source、lib_dir、True)
ファイル「/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.Egg/pip/wheel.py」、205行目、clobber os.makedirs(destdir)
ファイル「/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py」、行157、makedirs mkdir(name、mode)
OSError:[Errno 13]許可が拒否されました: '/Library/Python/2.7/site-packages/requests'
/Users/Mario/Library/Logs/pip.logに障害のデバッグログを保存する
私が言えることから、あなたのシステムにはPythonの3つのバージョンがあります。
/Library/Frameworks/Python.framework/Versions/2.7/
/Library/Python/2.7/site-packages
pipは、ダウンロードしたPython 2.7バージョン(Applicationsフォルダーに表示されるバージョン))、残念ながらdefault Pythonお使いのシェルはOSXにバンドルされており、そこにはpipがインストールされていません。
IDLEには、ダウンロードしたPythonもバンドルされているため、pipがインストールされていることを通知し続けますが、シェルからは機能しません。
おそらく、「プライマリ」としてpython.orgからダウンロードしたPythonを使用しているので、Python(結局、使用しているIDLEのあるもの)) 、デフォルトとしてこのPythonを指すようにシェル環境を設定する必要があります。
最も簡単な方法は、.bashrc
に変数を追加し、エイリアスpython
を作成して、適切なバイナリを指すようにすることです。これを行うには、この行を/Users/yourusername/.bashrc
に追加します。.
のファイルはデフォルトで非表示になっているため、コマンドラインでファイル名全体を記述して開く必要があります。次の行を追加します。
alias python=/Library/Python/2.7/python
ファイルを保存してから、すべてのターミナルウィンドウを閉じて、もう一度開きます。ここでpip
と入力すると正しく動作するはずです。その後、リクエストのインストールに進むことができます。
将来の参考のために、Pythonの1つのバージョンに固執してみてください。私は個人的にバンドル版を無視し、 brew
からのものを使用しますが、python.orgからダウンロードしたPythonに固執することができます。
私は私のものを修正しました:
brew reinstall python
壊れたパスをすべて修正しました。私は、間違ったpythonバージョン依存またはそのようなものがあった壊れたbrewパッケージでそれを壊したと思います。
site.pyは、デフォルトでpythonによって実行される標準モジュールです。コードの実行を開始する前にsys.pathを調整し、コードを実行できます。標準ライブラリに存在し、ほとんど実行できないただし、-Sスイッチをpythonに渡すことにより、モジュールの自動インポートを無効にすることができます。
とにかく、どうしてモジュールがインポートできないのかを調べる必要があります。 sys.pathリストを調べてみてください。
'/Library/Python/2.7/site-packages/requests'にパッケージをインストールしようとしていますが、そのためにはルート権限が必要です。これはトリックを行う必要があります:
$ Sudo pip install requests
私は同じ質問に出会い、エラー情報は次のとおりです。
ModuleNotFoundError: No module named 'xxx'
そして最後に
brew install python3
brew link python3
Sudo python3 -m pip install xxx
// or `Sudo python3 -m pip install -r requirements.txt`