Mac - Python - ошибка импорта: "Нет модуля с именем сайта"

Сегодня вечером я пытаюсь установить пакет под названием "запросы" и начал возиться с терминалом, и у меня нет особой интуиции, когда дело доходит до такого рода вещей.

Компьютер Mac mini, OSX версии 10.9.4

В /Library/Python у меня есть 4 папки: 2.3, 2.5, 2.6 и 2.7.
В/Приложения у меня есть "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

Я считаю, что пипс уже установлен. Я запускаю файл "get-pip.py" в IDLE, и он говорит следующее:

  
 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', '/Library/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 для сценариев
псевдоним python =/library/Python/2.7/python

Вот результат работы:

  pip install requests      

host-210-117: ~ запросы на установку Mario $ pip
Загрузка/распаковка запросов
Загрузка запросов-2.4.1-py2.py3-none-any.whl(458 КБ): 458 КБ загружено
Установка собранных пакетов: запросы
Очистка...
Исключение:
Traceback (последний вызов был последним):
Файл "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", строка 122, в основном   status = self.run (параметры, аргументы)
Файл "/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, в установке   require.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 (источник, lib_dir, True)
Файл "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/wheel.py", строка 205, в клоббере   os.makedirs(DESTDIR)
Файл "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", строка 157, в makedirs   mkdir (имя, режим)
OSError: [Errno13] В доступе отказано: '/Library/Python/2.7/site-packages/requests'

Хранение журнала отладки для сбоя в /Users/Mario/Library/Logs/pip.log

Ответ 1

Из того, что я могу сказать, у вас есть три версии Python в вашей системе.

  • Тот, который поставляется с OSX /Library/Frameworks/Python.framework/Versions/2.7/
  • Python 2.7 из python.org /Library/Python/2.7/site-packages
  • Python 3.4 из python.org

pip установлен на версию Python 2.7, которую вы загрузили (тот, который вы видите в папке "Приложения" ), к сожалению, Python по умолчанию для вашей оболочки - это тот, который поставляется с OSX, и там не установлен протокол.

IDLE также поставляется вместе с загруженным Python, поэтому он продолжает сообщать вам о том, что пакет установлен, но он не работает из оболочки.

Поскольку вы, вероятно, используете Python, загруженный с python.org в качестве вашего "основного" Python (в конце концов, его с помощью IDLE, который вы используете), вам нужно настроить среду оболочки на этот Python по умолчанию.

Самый простой способ - добавить переменную в .bashrc, которая создает псевдоним python и указывает его в правый двоичный файл. Для этого добавьте эту строку в /Users/yourusername/.bashrc - файлы с . скрыты по умолчанию, поэтому вам нужно будет записать полное имя файла в командной строке, чтобы открыть его. Добавьте следующую строку:

alias python=/Library/Python/2.7/python

Сохраните файл, а затем закройте все окна терминала и снова откройте его. Теперь введите pip и он должен работать корректно, а затем вы можете перейти к установке запросов.

В будущем обратитесь к одной версии Python. Я лично игнорирую вложенную версию и использую одну из brew, но вы можете придерживаться Python, загруженного с python.org.

Ответ 2

Я исправил мой:

brew reinstall python

Он исправил все мои сломанные пути. Я думаю, я сломал его сломанным пакетом brew, который имел неправильную зависимость от версии python или что-то в этом роде.

Ответ 3

site.py - стандартный модуль, который по умолчанию запускается python. Он позволяет настраивать sys.path и запускать некоторый код перед запуском вашего кода. Он должен жить в стандартной библиотеке и вряд ли может быть каким-то образом отсутствует. Однако вы можете отключить автоматический импорт модуля, передав -s переключиться на python.

В любом случае вам следует как-то проверить, почему модуль не может быть импортирован. Попробуйте просмотреть список sys.path.

Ответ 4

Вы пытаетесь установить пакет в '/Library/Python/2.7/site-packages/requests', но для этого требуются права root. Это должно сделать трюк:

$ sudo pip install requests

Ответ 5

Я встретил тот же вопрос, и информация об ошибке:

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'

Ответ 6

sudo easy_install pip
sudo pip install requests