LINUX.ORG.RU

Python и модули

 


0

1

Добрый день, господа. Допустим, у меня есть скрипт main.py, в котором загружается мой собственный модуль, который лежит в ./lib/. Пробовал загружать и с помощью import, и с помощью from module import ololo - всё то же.

В модуле описана функция, что-нибудь вроде

def ololo()
 print 'start'
 print 'finish'
И когда я пытаюсь запустить из основной программы функцию модуля, то интерпретатор пишет мне:

object is not callable

В чём может быть соль?

а по-питоновски и с трейсами это можно изобразить?

odii ()
Ответ на: комментарий от blablacon

я не понимаю, тебя пожалеть...?

запусти python, и покажи, как ты делаешь импорт, потом, как вызываешь, и как оно ругается

odii ()
Ответ на: комментарий от odii

mymod.py

def test():
    print 'test'

Python 2.7.3 (default, Mar 14 2014, 11:57:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mymod
>>> mymod.test()
test
>>> from mymod import test
>>> test()
test
odii ()
Ответ на: комментарий от odii

Да нет, спасибо, помочь разобраться. В общем, кусок основной программы:

koko = (всякая инфа из базы)
sys.path.append('./modules/')
import ololo
def ololo1:
 ololo.trololo()
Код модуля(Юзаю selenium):
def trololo:
 blabla.send_keys(koko[0])
И, вот, когда я всё это дело запускаю:
TypeError: 'WebElement' object is not callable
Никаких подробных трейсов нет, только имена функций.

blablacon ()
Ответ на: комментарий от blablacon

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

odii ()

у меня нет желания это расшифровывать

odii ()
Ответ на: комментарий от odii
Traceback (most recent call last):
  File "./main.py", line 134, in <module>
    start_work()
  File "./main.py", line 128, in start_work
    ololo.trololo()
TypeError: 'WebElement' object is not callable

Вот подробный(весь) трейс. Мне кажется, лучше не стало.

blablacon ()
Ответ на: комментарий от blablacon

def trololo:

def trololo():

И вообще, если хочешь, чтобы тебе помогали, не измывайся над именами. Это читать неприятно.

i-rinat ★★★★★ ()
Ответ на: комментарий от blablacon

Ну и где в предоставленном тобой коде WebElement?

UVV ★★★★★ ()
Ответ на: комментарий от blablacon

TypeError: 'WebElement' object is not callable

Скорее всего у тебя в где-то коде что-то типа:

el = driver.find_element_by_...(...)
el()

вот эти скобочки после el надо удалить.

shy ()
Ответ на: комментарий от blablacon
koko = (всякая инфа из базы)
sys.path.append('./modules/')
import ololo
def ololo1:
 ololo.trololo()

Пример взят из книги «Питон глазами школьника», 2 изд. дополненное и переработанное.

bk_ ★★ ()
Ответ на: комментарий от blablacon
-sys.path.append('./modules/')
-import ololo
+import modules.ololo as ololo

или

-sys.path.append('./modules/')
-import ololo
+from modules.ololo import trololo
- ololo.trololo()
+ trololo()

anonymous ()

ну тебе же пишет, что object not callable. ты где-то пытаешься объект дергать как функцию

foreigner_web ()

Прекрати говнокодить. Пеши аккуратно, по методичке. И всё у тебя получится.

yvv ★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.