Python не импортирует

Итак, я скачал API lastfm для Python, сделанный людьми. можно найти здесь: http://code.google.com/p/python-lastfm/

У меня есть хостинг сайта через dreamhost. Мне не удалось собрать модуль, используя:
python setup.py build
в моей оболочке, для доступа к которой я использовал шпатлевку. Но когда я запускал
python setup.py install
, он возвращал ошибку. Полагая, что все, что на самом деле делает установка, — это перебрасывать файлы из каталога lib в папку python site-packages, я решил попробовать сделать это вручную. Мне удалось это сделать на моей локальной машине, и я смог запустить python и набрать import lastfm без ошибок. Но я не мог заставить его работать на моем веб-хостинге.

В настоящее время у меня на моем веб-хостинге довольно много кластеров из-за моего n00bism, под этим я подразумеваю, что пытался установить python несколько раз, и я действительно не знаю, где он успешно установился. Все, что я знаю, это то, что я могу пойти в putty и набрать python, и он запустится, но я точно не знаю, откуда. Поэтому я скопировал сборку lastfm во все пакеты python2.x/lib/site-packages, которые смог найти, но безрезультатно.

Я не знаю, что я делаю неправильно. В нем говорится, что путь ОС pythons - это usr/lib/python2.5, и я полагаю, что usr означает корень или локальный. я не знаю. я очень запутался.

Мне также любопытно, потому что я могу импортировать такие вещи, как mysql и sqlite, набрав
import MySQLdb
import sqlite
import sqlite3

и все это работает, но я не вижу их нигде в своем пути к Python.

заранее спасибо. если мне нужно перечислить больше информации, пожалуйста, скажите мне. Благодарность!

редактировать:

$ python setup.py install работает ошибка установки: не удается создать или удалить файлы в каталоге установки

При попытке добавить или удалить файлы в каталоге установки произошла следующая ошибка:

[Errno 13] Permission denied: '/usr/lib/python2.5/site-packages/test-easy-install-11740.write-test'

Указанный вами каталог установки (через --install-dir, --prefix или параметр distutils по умолчанию):

/usr/lib/python2.5/site-packages/

Возможно, у вашей учетной записи нет прав на запись в этот каталог? Если каталог установки принадлежит системе, вам может потребоваться войти в систему как администратор или учетная запись «root». Если у вас нет административного доступа к этому компьютеру, вы можете выбрать другой каталог установки, предпочтительно тот, который указан в вашей переменной среды PYTHONPATH.

Для получения информации о других вариантах вы можете обратиться к документации по адресу:

http://peak.telecommunity.com/EasyInstall.html

Пожалуйста, внесите соответствующие изменения для вашей системы и повторите попытку.


это ошибка, которую я получу, когда попытаюсь выполнить установку python setup.py


person stackVidec    schedule 25.02.2011    source источник
comment
когда вы делали сборку/установку python setup.py, какие были сообщения об ошибках?   -  person Mahmoud Abdelkader    schedule 25.02.2011
comment
это вернет ошибку. - какая ошибка? - не могли бы вы опубликовать последовательную и полную информацию?   -  person Andreas Jung    schedule 25.02.2011


Ответы (3)


Пакеты Python ищутся в вашем PYTHONPATH. Если вы сделаете echo $PYTHONPATH или

import sys
print sys.path

вы получите список каталогов, из которых импортируются модули. В вашем случае с python-lastfm вы устанавливаете одну версию Python и пытаетесь запустить программу, используя другую версию. Чаще всего возникает путаница, когда вы обнаруживаете, что что-то не импортируется. Используйте полный путь к python /usr/bin/python2.6 или выполните which python и попробуйте использовать полный путь для сборки и установки с помощью сценария установки и повторите попытку.

person Senthil Kumaran    schedule 25.02.2011
comment
Хорошо, я смог запустить копию Python, которую хотел, указав местоположение нужного мне Python, а затем импорт заработал. Теперь мой вопрос: какую версию Python я использовал раньше? потому что я бы просто набрал «python» в любом каталоге, находясь в оболочке, и он запустил бы версию python. где находится тот? Я имею в виду, что я подключен к моему веб-хостингу и получаю к нему доступ через оболочку. - person stackVidec; 25.02.2011
comment
Вы можете узнать это, набрав which python. Это может быть /usr/local/bin/python, указывающее на конкретную версию. Обратите внимание, что в Unix PATH /usr/local/bin стоит перед /usr/bin, отдавая предпочтение установленным пользователем версиям, а не системным по умолчанию. - person Senthil Kumaran; 25.02.2011
comment
милое спасибо за помощь. одна последняя вещь, если вы можете. когда я набираю, в каком питоне он возвращает usr/bin/python, с которым я в порядке. Но в этой папке есть просто файл python и ничего больше (минус pydoc и бездействие). Так что я предполагаю, что расположение модулей и других вещей находится где-то еще. есть ли простой способ узнать, где это будет? - person stackVidec; 25.02.2011
comment
Идите к переводчику. Импортируйте любой модуль и попробуйте его __file__ атрибут. Like import sys;sys.__file__ покажет, из какого он файла. - person Senthil Kumaran; 25.02.2011
comment
ну отлично!!! Спасибо, чувак, я очень ценю это, теперь у меня все работает. мой веб-хост находится в /home/myusername/*, и когда я вызываю только python, он вызывает версию python, которую они установили, к которой у меня нет прямого доступа. Как и его python, установленный перед каталогом myusername. Итак, теперь в моем файле php я просто вызываю версию python, которую я нашел в /home/myusername/build/Python-2.5/python, и работает как шарм. теперь я просто установлю туда все свои модули вручную. превосходно. еще раз спасибо, это очень ценится. - person stackVidec; 26.02.2011

В некоторых дистрибутивах Linux (Debian, Ubuntu) site-packages отсутствует в PYTHONPATH. Вы можете добавить его в свой PYTHONPATH, разместить ссылку в dist-packages или добавить файл конфигурации пути.

Документация: Изменение пути поиска Python

person johnbaum    schedule 25.02.2011

В большинстве случаев для установки пакетов python в любой системе на основе UNIX (linux/os x/bsd) вам необходимо сделать:

sudo python setup.py install

Это, конечно, если у вас есть права sudo.

person gnur    schedule 25.02.2011