Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 16, 2011 11:27:58

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Проблема с twisted

Всем привет! Знаком с питон не очень давно, заинтересовала тема сокетов. Как я понял есть для них такая либа twisted, нашел следующий пример:

from twisted.internet.protocol import Factory, Protocol
from twisted.internet import reactor

class Server(Protocol):
def connectionMade(self):
self.transport.write(self.factory.quote+'\r\n')
def connectionLost(self, reason):
print 'connection lost ...'
def dataReceived(self, data):
print data
self.transport.write(data)

class ServerFactory(Factory):
protocol = Server
def __init__(self, quote=None):
self.quote = quote

reactor.listenTCP(8007, ServerFactory("quote"))
reactor.run()
Пытаюсь запустить- пишет следующее:
Traceback (most recent call last):
File "serv.py", line 1, in <module>
from twisted.internet.protocol import Factory, Protocol
File "/usr/lib/python2.6/dist-packages/twisted/__init__.py", line 18, in <module>
from twisted.python import compat
File "/usr/lib/python2.6/dist-packages/twisted/python/compat.py", line 99, in <module>
except (AttributeError, NameError, socket.error):
AttributeError: 'module' object has no attribute 'error'
ОС: Дебиан 6
Питон: 2.6
Twisted: 10.1.0
Это проблема в модуле? Или пример не правильный?



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#2 Окт. 16, 2011 18:18:18

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Проблема с twisted

Откуда “serv” запускается:
$ python -c“import socket; print socket.__file__”
Возможно какой-то не тот socket цепляется.

..bw



Офлайн

#3 Окт. 17, 2011 18:50:19

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Проблема с twisted

“serv” это и есть этот скрипт, запускается из /home/user
Команда python -c“import socket; print socket.__file__”
Выдает вот что:

/usr/lib/python2.6/socket.pyc



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#4 Окт. 18, 2011 21:20:09

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с twisted

barabansheg
я так понимаю, что bw имел в виду запуск данной команды именно из той папки, где у тебя лежит файл serv.py



Офлайн

#5 Окт. 19, 2011 08:19:21

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Проблема с twisted

А) Извиняюсь, туплю, там вот что выдает:

comp@comp:~/Progs/Python$ python -c"import socket; print socket.__file__" 
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "socket.py", line 1, in <module>
from twisted.internet.protocol import Protocol
File "/usr/lib/python2.6/dist-packages/twisted/__init__.py", line 18, in <module>
from twisted.python import compat
File "/usr/lib/python2.6/dist-packages/twisted/python/compat.py", line 99, in <module>
except (AttributeError, NameError, socket.error):
AttributeError: 'module' object has no attribute 'error'



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#6 Окт. 19, 2011 09:01:02

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с twisted

barabansheg
ну вот вам и ответ - у вас в той же папке лежит файл socket.py, и при импорте берется он, а не стандартный модуль питона. Перейменуйте и всё заработает.



Офлайн

#7 Окт. 19, 2011 20:18:19

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Проблема с twisted

Спасибо! Удалил, все работает.



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#8 Окт. 21, 2011 15:02:51

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Проблема с twisted

Можно было ещё from __future__ import absolute_import попробовать.
На сколько я помню в Python3 импорт абсолютный по умолчанию, и такой ошибки бы не возникло.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version