web-dev-qa-db-ja.com

Mac-Python-インポートエラー:「サイトという名前のモジュールはありません」

今夜、私は「リクエスト」と呼ばれるパッケージをインストールしようとしており、ターミナルをいじくり始めており、この種のことに関してはあまり直感がありません。

コンピューターは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に障害のデバッグログを保存する

10
user3728456

私が言えることから、あなたのシステムにはPythonの3つのバージョンがあります。

  • OSXに付属するもの/Library/Frameworks/Python.framework/Versions/2.7/
  • Python.orgのPython 2.7 /Library/Python/2.7/site-packages
  • Python.orgのPython 3.4

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に固執することができます。

4
Burhan Khalid

私は私のものを修正しました:

brew reinstall python

壊れたパスをすべて修正しました。私は、間違ったpythonバージョン依存またはそのようなものがあった壊れたbrewパッケージでそれを壊したと思います。

2
Daantje

site.pyは、デフォルトでpythonによって実行される標準モジュールです。コードの実行を開始する前にsys.pathを調整し、コードを実行できます。標準ライブラリに存在し、ほとんど実行できないただし、-Sスイッチをpythonに渡すことにより、モジュールの自動インポートを無効にすることができます。

とにかく、どうしてモジュールがインポートできないのかを調べる必要があります。 sys.pathリストを調べてみてください。

0
newtover

'/Library/Python/2.7/site-packages/requests'にパッケージをインストールしようとしていますが、そのためにはルート権限が必要です。これはトリックを行う必要があります:

$ Sudo pip install requests
0
Sanchay

私は同じ質問に出会い、エラー情報は次のとおりです。

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`
0
tenado