metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-05-13 02:38 pm

Питонное

Есть спецы по змеям гвидо-ван-россума? Примеры из scipy документации, само собой, не работают (что впрочем, после всего рукожопия уже не так неожиданно):

берем пример: http://docs.scipy.org/doc/scipy-0.10.1/reference/generated/scipy.signal.remez.html#scipy.signal.remez

>>>import scipy as sp
>>>sp.signal.remez(72, [0, 0.1, 0.2, 0.4, 0.45, 0.5], [0, 1, 0])
Traceback (most recent call last):
File "remez.py", line 9, in
scipy.signal.remez(72, [0, 0.1, 0.2, 0.4, 0.45, 0.5], [0, 1, 0])
AttributeError: 'module' object has no attribute 'signal'
------
модификация 1:
>>>from scipy import signal
>>>signal.remez(72, [0, 0.1, 0.2, 0.4, 0.45, 0.5], [0, 1, 0])
(последовательность коэффициентов фильтра - ок)
------
модификация 2:
>>>import scipy.signal as s
>>>s.remez(72, [0, 0.1, 0.2, 0.4, 0.45, 0.5], [0, 1, 0])
(последовательность коэффициентов фильтра - ок)

[identity profile] kkirsanov.livejournal.com 2012-05-13 12:00 pm (UTC)(link)
Их примеры могут быть для интерактив-шелла ipython c ключем -scipy

[identity profile] kkirsanov.livejournal.com 2012-05-13 12:06 pm (UTC)(link)
а, сори, такого ключа нет, есть только pylab

[identity profile] avnik.livejournal.com 2012-05-13 12:02 pm (UTC)(link)
Авторам scipy незачет, не проверяют доки (примеры в них), а ведь механизм для этого есть.
Импорт не рекурсивен.
Поэтому import scшpy as sp не правильное, а
from scipy import signal -- правильно
А from scipy.signal import remez совсем правильно.

вообще -- импортировать только нужные символы -- правильно.

[identity profile] metaclass.livejournal.com 2012-05-13 12:24 pm (UTC)(link)
А, модуль внутри модуля не импортируется, если явно не указать?
Я в гугле глянул - 100500 вопросов на эту тему, ничего не объяснено, потом заглянул в исходники scipy, поправил свой код почти наугад оно и заработало.

[identity profile] avnik.livejournal.com 2012-05-13 12:32 pm (UTC)(link)
более того, у тебя при иерархии
foo.bar.baz
в foo/bar/__init__.py вообще может быть
import bullshit as baz

Если тебе нужно доставать символ из иерархии по полному имени в обход всех плясок, возьми какой нибудь zope.dottedname (в django, pyramid, twisted и прочих тулкитах обычно есть более или менее аналог)

[identity profile] stdray.livejournal.com 2012-05-13 12:07 pm (UTC)(link)
Вам бы для начала, что-то вроде
easy_install.exe nose

а потом
import numpy
numpy.test('1','10')
import scipy
scipy.test('1','10')

чтобы проверить, что вы там наустанавливали.

[identity profile] metaclass.livejournal.com 2012-05-13 12:12 pm (UTC)(link)
Уже проделано, только без easy_install. Тесты проходят ок.

[identity profile] avnik.livejournal.com 2012-05-13 12:33 pm (UTC)(link)
А как вы ставитесь тогда? Без virtualenv и easy_install?

[identity profile] metaclass.livejournal.com 2012-05-13 01:38 pm (UTC)(link)
python setup.py install

[identity profile] avnik.livejournal.com 2012-05-13 04:42 pm (UTC)(link)
А вот это вы бросьте, нечего /usr/local засирать (или что там в венде вместо него).
Осваивайте или virtualenv, или buildout (а лучше оба -- у них разные области применения, хоть и пересекающиеся)

[identity profile] metaclass.livejournal.com 2012-05-13 05:10 pm (UTC)(link)
В винде вместо него изолированная папка с питоном, которую я с собой таскаю в виде архива на носимом винте по 100500 рабочих мест. Мне что, везде инсталляторы запускать?:)

[identity profile] avnik.livejournal.com 2012-05-13 05:27 pm (UTC)(link)
А клонируете копированием мышкой как я понимаю?
Профессионалы рекомендуют отдельную песочницу под каждый проект.
(да и вспоминать что куда понаставлено, и зачем -- не надо -- в buildout.cfg все ходы вписаны, и повторяемость установки гарантирована)

Отучаемся закатывать солнце вручную.

[identity profile] metaclass.livejournal.com 2012-05-13 05:36 pm (UTC)(link)
Не, если питонище, не приведи айсед, пойдет в продакшен - тогда, само собой, будут кошерные методы.
А так - это личный тул, нужен всегда под руками, в идентичном виде, поэтому - xcopy-деплоймент.

[identity profile] avnik.livejournal.com 2012-05-13 05:59 pm (UTC)(link)
Такие вещи лучше сразу приучаться правильно делать.
А то и правда, не приведи айсед, в продакшн попадет

[identity profile] victor bolshakov (from livejournal.com) 2012-05-14 06:20 am (UTC)(link)
Для продакшена отлично x-copy идет :) Вот уж точно 100% повторяемость. Или нужно собственный репозиторий пакетов держать. А то я один раз 3 часа потерял из-за этих автоматических инсталяторов-конфигураторов, т.к. сервер с пакетом не был доступен.

Еще можно свои egg собирать и из них ставить. Правда у меня mercurial в egg нехочет соибратся, но я не парюсь.

[identity profile] victor bolshakov (from livejournal.com) 2012-05-14 06:15 am (UTC)(link)
Нынче модно distribute. Более того, оно в связке с virtualenv работает.

[identity profile] hls-1141.livejournal.com 2012-05-13 12:52 pm (UTC)(link)
Из исходников scipy:
signal --- Signal Processing Tools [*]
sparse --- Sparse Matrices [*]

[*] - using a package requires explicit import

[identity profile] potan.livejournal.com 2012-05-13 02:36 pm (UTC)(link)
Не надо с питоном связываться. Для работы с чиселками есть R.

[identity profile] victor bolshakov (from livejournal.com) 2012-05-14 06:22 am (UTC)(link)
А еще есть www.wolframalpha.com

[identity profile] potan.livejournal.com 2012-05-14 06:40 am (UTC)(link)
Есть. Но без интернета не работает и не всегда правильно догадывается, что от нее хотят, а объяснять ей понятнее сложно.