2014-01-14 5 views
1

Я относительно новый пользователь python, и я постоянно сталкиваюсь с этой (возможно простой?) Проблемой и ее действительно мешает мне продвигаться вперед.Установка и импорт пакетов python

В этом проблема. Всякий раз, когда я пытаюсь установить пакет, используя либо pip, либо easy_install, я получаю ошибки, говорящие, что мой профиль пользователя не имеет доступа к каталогу установки. Однако я администратор моего компьютера. Установка никогда не завершается с помощью easy_install (я получаю сообщение об ошибке ниже), но в конечном итоге он заканчивает использование pip, но я не могу импортировать пакет после установки - я получаю обычный «без модуля с именем [имя модуля]».

Easy_install error message: 
error: can't create or remove files in install directory 

The following error occurred while trying to add or remove files in the 
installation directory: 

    [Errno 13] Permission denied: '/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/test-easy-install-3280.write-test' 

The installation directory you specified (via --install-dir, --prefix, or 
the distutils default setting) was: 

    /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/ 

Perhaps your account does not have write access to this directory? If the 
installation directory is a system-owned directory, you may need to sign in 
as the administrator or "root" account. If you do not have administrative 
access to this machine, you may wish to choose a different installation 
directory, preferably one that is listed in your PYTHONPATH environment 
variable. 

For information on other options, you may wish to consult the 
documentation at: 

    http://packages.python.org/distribute/easy_install.html 

Please make the appropriate changes for your system and try again. 
+0

Похоже, что папка «Пакеты сайтов» пуста в папке python 2.7. Это где должны быть установленные пакеты? Я попытался переместить папки модулей в это место, перезапустив python, чтобы убедиться, что это имеет какой-то эффект, но ничего. – user2179795

ответ

0

Вы должны будете использовать sudo, как вы пытаетесь установить в глобальной папке пакетов (/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages /), и ваш пользователь, по-видимому, не имеет права на запись для этой папки.

В то время как sudo поможет вам преодолеть это ограничение, взгляните на virtualenv, чтобы создать отдельные независимые среды, где вы можете устанавливать разные пакеты без перекрытия. Кроме того, Python, который поставляется с OS X, по-видимому, является модифицированной версией, поэтому вам может быть лучше установить полную независимую версию. Таким образом, вы не будете затронуты, если Apple когда-либо обновит версию Python (или нет, и вам нужна другая версия).

Я нашел this article довольно хорошо в получении меня и работает с Python на OS X.

+0

'sudo easy_install', как правило, плохая идея, поскольку easy_install не делает никакой попытки быть безопасным. – geoffspear

+0

Спасибо, Кристоф, я шаг за шагом следил за указаниями, включая обновление моей ОС для mavericks, но похоже, что проблема только что была увеличена. Всякий раз, когда я пытаюсь импортировать пакеты, которые, как я знаю, установлены (numpy, scipy, matplotlib), происходит сбой python. Я могу импортировать эти пакеты в ipython, но не в сам python. Любая идея, что происходит? – user2179795

+0

Сначала проверьте, используете ли вы правильный питон, выполнив 'which python'. Кроме того, посмотрите на shebang, чтобы узнать, указывает ли эта точка на правильное местоположение python. Проверьте [this] (http://stackoverflow.com/questions/20952797/pip-installing-in-global-site-packages-instead-of-virtualenv) вопрос (и ответ) для получения дополнительной информации. –

1

Более простой возможности, по сравнению с virtualenv устанавливает пакет в домашнем каталоге, набрав:

easy_install --user <package> 

Ваш пакет будет установлен в ~/.local/lib/python2.7, который находится по умолчанию для пакетов python.

Эта работающая платформа независима. С вашего вывода я предполагаю, что вы используете Linux. В Windows easy_install всегда требует прав администратора, если вы используете стандартную установку Python.

+0

Отличный ответ! Простой и лаконичный. У меня много головных болей :) – dustinrwh

Смежные вопросы