it-swarm.com.ru

Pip Install не устанавливается в правильный каталог?

Кажется, я не могу правильно использовать Sudo pip для установки в следующий каталог: 

/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 для установки в правильный каталог?

Кроме того, я пробовал 

Sudo pip установить 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/
22
Chris

Судя по комментариям к исходному вопросу, у вас установлено несколько версий Python, и этот пункт просто переходит на неправильную версию. 

Во-первых, чтобы узнать, какую версию 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}

набрав «какой питон», вы получите правильный результат. Затем установите pip (если он еще не установлен для этой установки python). Наконец, используйте это. с тобой должно быть все в порядке. 

25
Roy2012

Это то, что у меня работало на Windows. Причиной является несколько установок Python

  1. обновить путь с правильным питоном
  2. удалить pip с помощью python -m pip uninstall pip setuptools
  3. перезапуск Windows не работал до перезагрузки
4
Jabda

Virtualenv твой друг

Даже если вы хотите добавить пакет в свою основную установку, все же лучше сначала сделать это в виртуальной среде, чтобы обеспечить совместимость с другими вашими пакетами. Однако, если вы познакомитесь с virtualenv, вы, вероятно, обнаружите, что на самом деле нет причин устанавливать что-либо в базовую установку. 

2
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 __== '__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. Вам просто нужно убедиться, что вы используете его по умолчанию, настроив правильные переменные окружения (например, PATH в Linux), а затем установите pip без Sudo, используя эту версию Python.

Еще лучшим способом было бы установить virtualenvs из вашей корневой установки.

Таким образом, вы можете установить/обновить все, что захотите, без привилегий root и больше никогда не беспокоиться о том, почему Sudo pip не работает. Вы также избегаете предоставлять привилегии root всем, что есть на Pypi, и это гарантирует, что вы не смешиваете системные библиотеки с вашими.

2
user1940040

Я полностью согласен с ребятами, лучше использовать virtualenv, чтобы вы могли установить индивидуальную среду для каждого проекта. Он идеально подходит для обслуживания, поскольку для каждого проекта он похож на другой мир, и каждое обновление приложения, которое вы делаете, не будет мешать другим проектам. 

Здесь вы можете найти краткую информацию о virtualenv , связанных с установкой и первыми шагами. 

1
Emily
  1. скачать pip по адресу https://pypi.python.org/pypi/pip (tar)
  2. распаковать файл tar
  3. перейдите в каталог файла
  4. Sudo python2.7 setup.py установить
0
salomeow

Вы можете просто изменить линию Шебанга. Я делаю это все время на новых системах. 

Если вы хотите, чтобы pip устанавливался на текущую версию Python, просто обновите строку Shebang до правильной версии пути pythons. 

Например, чтобы изменить pip (не pip3) для установки на Python 3:

#!/usr/bin/python

Для того, чтобы:

#!/usr/bin/python3

Любой модуль, который вы устанавливаете с помощью pip, должен быть установлен на Python, а не на Python. 

Или вы можете просто изменить путь.

0
user9950741