Форум сайта python.su
module1.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import AlClk
def go():
print 'go'
a=AlClk.AlClkCls(14,9,2009,14,30,0,go)
x = a.RunSleep111(2) ##Error
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import threading
import datetime
import time
class AlClkCls(threading.Thread):
def __init__(self, dd, mm, yyyy, h, m, s, UserDef):
threading.Thread.__init__(self)
def AlarmClock(self):
print 'AlarmClock'
UserDef
def RunSleep111(self,g): ## вот же она, БЛИН!!!!!!!
time.sleep (2.0)
print 'lll'
return 0
Офлайн
В таком виде все будет работать.
File “G:\MainJob\module1.py”, line 48
Попробуй полностью привести код, может там что-то такое есть…
Офлайн
Да нет это весь код - больше ничего нет ни в том ни в другом модулях. Я ж эти модули просто для проверки создавал.
Офлайн
Все работает. Ты оба файла в одном каталоге держишь?
Отредактировано (Сен. 16, 2009 13:14:21)
Офлайн
В одном. Блин ща попробую в консоли запустить.
Запустил. Консоль сказала
Import Error про AlClk.
Попробовал запустить в портабельном PyScripter всё работает. Похоже глючил PyScripter который у меня непортабельный. Теперь буду перепроверять его сообщения в консоли. Но почему же Import Error? А можно писать полный путь к импортируемому файлу? Как правильно? Нигде такого примера не видел.
Отредактировано (Сен. 16, 2009 15:46:29)
Офлайн
GDKНет, не надо. Скорее всего у тебя смешение символов. Переименуй сначала файл, причем рекомендую это сделать маленькими латинскими буквами, например bdr.py , так не ошибешся.
А можно писать полный путь к импортируемому файлу? Как правильно?
Офлайн
Ну всё. Задолбало просто. Решил не просто переименовать файл, а скопировать на диск C:
Вот что получилось:
C:\nnn в ней два модуля module1.py, aaa.py
буквы точно латинские. Ну да ладно код в module.py изменил
import threading
import datetime
import string
##import aaa
##a=aaa.AlClkCls(14,9,2009,14,30,0,go)
##
##x = a.RunSleep111(2)
print "gggg"
Отредактировано (Сен. 16, 2009 17:57:01)
Офлайн
GDKНе забывай, что \n это символ перевода строки…. Используй прямые слеши…
execfile('C:\nnn\module1.py')
Офлайн
GDKС этим вроде прояснилось. Короче начал делать модуль .py и там несколько классов. Не работали 4 из 5-ти процедур в одном из классов с выдачей такого сообщения. А я этот модуль начал делать в PyScripter. В нем неудобно что нельзя как бы скрыть код тела процедуры, определения класса и т.п., поэтому я не закрыв его в PyScripter открыл его в NotePad++ и некоторые изменения вносил там. В результате в PyScripter отступы оказались знаками табуляции или ещё непонятно чем. PyScripter это не расценил как синтаксическую ошибку и просто видать игнорировал эти несколько процедур. Короче в PyScriptere переписал все отступы этих методов как пробелы ну и всё заработало как положено.
AttributeError: ‘AlClkCls’ object has no attribute ‘RunSleep111’
igor.kaistЭто как я понял про ошибки импорта. Как же тогда будет правильно?
Когда ты делаешь execfile, твой каталог c:/nnn не является рабочим, и соответственно твои модули интерпретатору не видны.
Офлайн
GDKОн обрабатывается везде как перенос, если только ты не сделаешь r'some\nstring'
Хоть я и знал что значит \n, но даже на ум не пришло что execfile его тоже обрабатывает как перенос.
GDKЭто не является ошибкой импорта. Пойми, когда ты делаешь execfile, то каталог не оказывается в sys.path, и твои модули не будут видны питону. Сделай сначала sys.path.append(YOUR_DIR), а потом exicfile
Это как я понял про ошибки импорта. Как же тогда будет правильно?
Отредактировано (Сен. 18, 2009 16:15:45)
Офлайн