1

Тема: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Решил начать изучать питон, и в качестве тренировки написать приложение для работы с usenet.
На ББ в питоне есть библиотека nntplib. В таблеточной версии я ее не нашел. Для теста попробовал просто скопировать эту библиотеку и подключить в скрипте.
Естественно, начались танцы с зависимостями. Добавил socket.py и дальше застрял. Получаю ошибку вида

Traceback (most recent call last):
  File "./nntp.py", line 2, in <module>
    import socket
  File "/python/socket.py", line 64, in <module>
    from _ssl import SSLError as sslerror
ImportError: cannot import name SSLError

Отсюда собственно 2 вопроса:
1) Как правильно использовать питоновские либы? Куда их можно скопировать, чтобы при импорте их было видно?
2) Есть подозрение, что на этот раз не хватает какого-то бинарного модуля (типа .so). В общем, чего ему надо?

Nokia N810

2

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

1. Правильно их поставить. Либо через пакет либо, через distutils. Если поставлены не так то это уже частный случай - его мы как я понял и рассматриваем. Скопировать их нужно либо в тот же каталог в котором находиться ваша программа, либо в пути прописанные в sys.path.
2. Что нужно вашей библиотеке смотрите в самой библиотеке. Открываете её и смотрите на строки import. А потом проверяете что из этого есть на таблетке. Все чего нет тащите с собой. Таким же образом проверять все что тащите (иногда это будет расходящийся ряд smile - т е количество зависимостей будет увеличиваться а не уменьшаться).

Nokia N800 OS 5.2008.43-7 / Nokia 3110 Classic / Debian 5.0.0 Lenny

3 Отредактировано Rajken (12-09-2009 17:52:01)

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

alex2ndr пишет:

1. Правильно их поставить. Либо через пакет либо, через distutils.

Ну вот об этом и вопрос собственно. Как их правильно поставить-то? Насколько я понял, distutils может поставить модули, если они описаны в setup.py. Это не мой случай, потому что я собираюсь написать приложение. Готового еще нет.
Сама библиотека входит в состав стандартной. И получается что стандартная библиотека на таблетке отсутствует. Как бы ее поставить?

alex2ndr пишет:

Если поставлены не так то это уже частный случай - его мы как я понял и рассматриваем. Скопировать их нужно либо в тот же каталог в котором находиться ваша программа, либо в пути прописанные в sys.path.

Именно по этому пути я и пошел. Но вот тут есть подстава - "from _ssl import SSLError as sslerror". Нет либы _ssl. Вернее есть, но это бинарник.
Попробовал переименовать ssl.py в _ssl.py. Теперь получаю следующее:

Traceback (most recent call last):
  File "./nntp.py", line 2, in <module>
    import socket
  File "/python/socket.py", line 50, in <module>
    import _ssl
  File "/python/_ssl.py", line 242
    except SSLError as x:
                     ^
SyntaxError: invalid syntax

Откуда "invalid syntax"? Несовместимые версии? Либа взята из 2.6

alex2ndr пишет:

2. Что нужно вашей библиотеке смотрите в самой библиотеке. Открываете её и смотрите на строки import. А потом проверяете что из этого есть на таблетке. Все чего нет тащите с собой. Таким же образом проверять все что тащите (иногда это будет расходящийся ряд smile - т е количество зависимостей будет увеличиваться а не уменьшаться).

Ну надеюсь все не настолько страшно будет smile А вообще, я бы с удовольствием поставил все, вот только надо разобраться как.

Nokia N810

4

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Rajken пишет:

Решил начать изучать питон, и в качестве тренировки написать приложение для работы с usenet.
На ББ в питоне есть библиотека nntplib. В таблеточной версии я ее не нашел.

Как вы искали? Модуль nntplib входит в стандартную поставку питона и, естественно, есть на таблетке.
Правда его умудрились запихать в python2.5-dev почему-то. Так что скорее всего у вас просто этот пакет не стоит.

770/800/810/900

5

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Wall пишет:

Как вы искали? Модуль nntplib входит в стандартную поставку питона и, естественно, есть на таблетке.
Правда его умудрились запихать в python2.5-dev почему-то. Так что скорее всего у вас просто этот пакет не стоит.

Отлично, спасибо! Вопрос с правильной установкой снят smile У меня стоял только python2.5-runtime, не удивительно что я не нашел нужной библиотеки.

Nokia N810

6

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

python-runtime - это отстой. Убейте и никогда не ставьте больше.
Вот смотрите:

# apt-cache show python2.5-runtime
Package: python2.5-runtime
Priority: optional
Installed-Size: 8
Maintainer: Luciano Miguel Wolf <luciano.wolf@indt.org.br>
Architecture: all
Source: python-runtime
Version: c1.0-6
Provides: python-runtime
Depends: python2.5 (>= 2.5.2-1osso2), python2.5-bluez (>= 0.9.1-1osso2), python2.5-dbus (>= 0.82-4osso1), python2.5-gobject (>= 2.14.1-1osso1), python2.5-gstreamer (>= 0.10.5-0osso2), python2.5-cairo (>= 1.4.0-1osso2), python2.5-gtk2 (>= 2.12.1-1osso1), python2.5-hildon (>= 0.8.8-1osso8), python2.5-numeric (>= 24.2-1osso5), python2.5-osso (>= 0.3-1osso4), python2.5-pygame (>= 1.7.1-1osso2), python2.5-xml (>= 0.8.4-1osso9), python2.5-conic (>= 0.1-1osso1), python2.5-gnome (>= 2.18.0-1osso3), python2.5-id3lib (>= 0.5.1-1osso2), python2.5-imaging (>= 1.1.6-1osso2)
...

Когда вы его ставите, то ставятся все пакеты, перечисленные в у него в Depends, все пакеты, перечисленные в Depends этих пакетов и так далее рекурсивно. Я уверен, что большинство из этого хлама вам не нужно, а место у вас на флеше оно жрет.

Разработчиков же, которые у себя в пакетах вместо перечисления реальных зависимостей ставят python2.5-runtime я бы на месте из рогатки стрелял smile
Вот, кстати, метод получения их списка, если вдруг кому захочется поучаствовать smile

Nokia-N810-51-3:~# apt-cache rdepends python2.5-runtime |tail +3 |sed 's/ *//' |uniq |xargs apt-cache show |grep ^Maintainer | sort -u
770/800/810/900

7

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Wall пишет:

python-runtime - это отстой. Убейте и никогда не ставьте больше.

да не вопрос smile Только что ставить вместо него?
А вообще, для разработки сойдет. Никогда не знаешь, что может в будущем понадобиться, а так оно уже все почти есть.

Nokia N810

8

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Rajken пишет:
Wall пишет:

python-runtime - это отстой. Убейте и никогда не ставьте больше.

да не вопрос smile Только что ставить вместо него?
А вообще, для разработки сойдет. Никогда не знаешь, что может в будущем понадобиться, а так оно уже все почти есть.

Помогло оно вам найти nntplib?

А ставить то, что нужно.

770/800/810/900

9

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Wall пишет:

Помогло оно вам найти nntplib?

Да, помогло. Оно там есть.

Wall пишет:

А ставить то, что нужно.

так в рантайме вроде бы сам питон и находится? Нет?

Nokia N810

10

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Rajken пишет:
Wall пишет:

Помогло оно вам найти nntplib?

Да, помогло. Оно там есть.

Если бы оно там было, то не было бы этого топика.

Rajken пишет:
Wall пишет:

А ставить то, что нужно.

так в рантайме вроде бы сам питон и находится? Нет?

В том-то и дело, что не только. Я показал что там находится.

770/800/810/900

11

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Wall пишет:

Если бы оно там было, то не было бы этого топика.

А, я думал что речь идет о python2.5-dev

Wall пишет:
Rajken пишет:
Wall пишет:

А ставить то, что нужно.

так в рантайме вроде бы сам питон и находится? Нет?

В том-то и дело, что не только. Я показал что там находится.

установка питона на таблетку по инструкции с сайта как раз и заключается в установке рантайма. А вот про python2.5-dev там ничего не говорится к сожалению.
В python2.5-dev сам питон тоже есть или это только либы к нему?

Nokia N810

12

Re: python nntplib. Как правильно добавить библиотеку с ББ на таблетку

Rajken пишет:

А, я думал что речь идет о python2.5-dev

Перечитайте тред тогда. Речь в последнее время идет о вредности python-runtime.

Rajken пишет:

установка питона на таблетку по инструкции с сайта как раз и заключается в установке рантайма.

Плохая значит инструкция. И nntplib хороший пример этого. Следуя инструкции вы поставили кучу того, что вам не нужно, а того, что нужно не нашли.

770/800/810/900