Seite 1 von 1
Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 19:49
von funkheld
Hallo, was ist da falsch.
Die Meldung kommt immer.
Kruz vorher lief es noch.
Hm...
GRuss
Traceback (most recent call last):
File "D:/Python26/seriell0.py", line 1, in <module>
import serial , time
File "D:\Python26\serial.py", line 3, in <module>
AttributeError: 'module' object has no attribute 'Serial'
Code: Alles auswählen
import serial , time
ser = serial.Serial(3, 19200, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1, xonxoff=0, rtscts=0)
print ser.portstr
w = ser.write("PIN1_ON\r")
#time.sleep(0.2)
r = ser.read(10)
print r
ser.close()
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 19:51
von BlackJack
@funkheld: Der *ganze* Traceback wäre hilfreich. Der Grund steht doch ganz unten, ohne den können wir auch nur raten.
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 19:53
von nomnom
Traceback (most recent call last):
File "D:/Python26/seriell0.py", line 1, in <module>
import serial , time
File "D:\Python26\serial.py", line 3, in <module>
AttributeError: 'module' object has no attribute 'Serial'
Das sagt ja eigentlich schon alles
Es gibt kein serial.Serial()
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 19:54
von funkheld
Hmmm..,"Traceback " was ist das?
D:/Python26/pythonw.exe -u "D:/Python26/seriell0.py"
Traceback (most recent call last):
File "D:/Python26/pebi-py/seriell0.py", line 1, in <module>
import serial , time
File "D:\Python26\pebi-py\serial.py", line 3, in <module>
AttributeError: 'module' object has no attribute 'Serial'
Das ist alles was unten in der Leiste steht von DrPython.
Gruss
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 19:56
von nomnom
funkheld hat geschrieben:Hmmm..,"Traceback " was ist das?
D:/Python26/pythonw.exe -u "D:/Python26/seriell0.py"
Traceback (most recent call last):
File "D:/Python26/pebi-py/seriell0.py", line 1, in <module>
import serial , time
File "D:\Python26\pebi-py\serial.py", line 3, in <module>
AttributeError: 'module' object has no attribute 'Serial'
Das ist alles was unten in der Leiste steht von DrPython.
Gruss
Traceback ist das was du da als Zitat hast.
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 19:58
von funkheld
Ich habe das doch installiert : pyserial-2.5.win32.exe
Und hier eine Demo, da kommt die gleiche Meldung.
Code: Alles auswählen
#! /usr/bin/env python
# Python Serial Port Extension for Win32, Linux, BSD, Jython
# see __init__.py
#
# (C) 2010 Chris Liechti <cliechti@gmx.net>
# this is distributed under a free software license, see license.txt
"""\
Some tests for the serial module.
Part of pyserial (http://pyserial.sf.net) (C)2010 cliechti@gmx.net
Intended to be run on different platforms, to ensure portability of
the code.
For all these tests a simple hardware is required.
Loopback HW adapter:
Shortcut these pin pairs:
TX <-> RX
RTS <-> CTS
DTR <-> DSR
On a 9 pole DSUB these are the pins (2-3) (4-6) (7-8)
"""
import unittest
import threading
import time
import sys
import serial
#~ print serial.VERSION
# on which port should the tests be performed:
PORT = 0
if sys.version_info >= (3, 0):
def data(string):
return bytes(string, 'latin1')
else:
def data(string): return string
class Test_Readline(unittest.TestCase):
"""Test readline function"""
def setUp(self):
self.s = serial.serial_for_url(PORT, timeout=1)
def tearDown(self):
self.s.close()
def test_readline(self):
"""Test readline method"""
self.s.write(serial.to_bytes("1\n2\n3\n"))
self.failUnlessEqual(self.s.readline(), serial.to_bytes("1\n"))
self.failUnlessEqual(self.s.readline(), serial.to_bytes("2\n"))
self.failUnlessEqual(self.s.readline(), serial.to_bytes("3\n"))
# this time we will get a timeout
self.failUnlessEqual(self.s.readline(), serial.to_bytes(""))
def test_readlines(self):
"""Test readlines method"""
self.s.write(serial.to_bytes("1\n2\n3\n"))
self.failUnlessEqual(
self.s.readlines(),
[serial.to_bytes("1\n"), serial.to_bytes("2\n"), serial.to_bytes("3\n")]
)
def test_xreadlines(self):
"""Test xreadlines method (skipped for io based systems)"""
if hasattr(self.s, 'xreadlines'):
self.s.write(serial.to_bytes("1\n2\n3\n"))
self.failUnlessEqual(
list(self.s.xreadlines()),
[serial.to_bytes("1\n"), serial.to_bytes("2\n"), serial.to_bytes("3\n")]
)
def test_for_in(self):
"""Test for line in s"""
self.s.write(serial.to_bytes("1\n2\n3\n"))
lines = []
for line in self.s:
lines.append(line)
self.failUnlessEqual(
lines,
[serial.to_bytes("1\n"), serial.to_bytes("2\n"), serial.to_bytes("3\n")]
)
def test_alternate_eol(self):
"""Test readline with alternative eol settings (skipped for io based systems)"""
if hasattr(self.s, 'xreadlines'): # test if it is our FileLike base class
self.s.write(serial.to_bytes("no\rno\nyes\r\n"))
self.failUnlessEqual(
self.s.readline(eol=serial.to_bytes("\r\n")),
serial.to_bytes("no\rno\nyes\r\n"))
if __name__ == '__main__':
import sys
sys.stdout.write(__doc__)
if len(sys.argv) > 1:
PORT = sys.argv[1]
sys.stdout.write("Testing port: %r\n" % PORT)
sys.argv[1:] = ['-v']
# When this module is executed from the command-line, it runs all its tests
unittest.main()
Gruss
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 20:01
von Hyperion
Was ist denn das für eine Datei?
D:/Python26/seriell0.py
Hast Du die angelegt? Sehr ungewöhnlicher Ort imho...
Heißt evtl. ein Script von Dir selber "serial.py"?
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 20:09
von funkheld
D:/Python26/seriell0.py
Das ist meine oben.
Habe die jetzt alle hier drin : D:/Python26/demos/seriell0.py
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 20:10
von funkheld
Heißt evtl. ein Script von Dir selber "serial.py"?
So hies mal eins, jetzt heisst es : seriell.py
Gruss
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 20:11
von Leonidas
Liegt noch irgendwo eine ``serial.pyc`` rum?
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 20:28
von funkheld
Liegt noch irgendwo eine ``serial.pyc`` rum?
Jup, das war. Diese Datei wurde vorher erstellt wo mein Programm noch "serial.py" hiess.
Habe sie gelöscht und jetzt läuft es. Oh...mann...
Danke.
Gruss
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 20:46
von Hyperion
@funkheld: Und was lernt uns das?
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 21:29
von funkheld
Hmmm...., wusste nicht, das meine lesbare Datei, die schon gelöscht war eine andere hinterlässt.
Obwohl die nicht im Systemordner von Python lag, wurde sie als eine Datei vom Modul Serial gehalten.
Warum sucht Python nicht im Installordner von Serial?
Es gibt im ganzen "D:/" keine datei "serial.py"
Warum wird dann dieses eingegeben : import serial
Und die programme laufen jetzt.
Gruss
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 21:39
von cofi
funkheld hat geschrieben:Obwohl die nicht im Systemordner von Python lag, wurde sie als eine Datei vom Modul Serial gehalten.
Warum sucht Python nicht im Installordner von Serial?
Weil Python in seinem Suchpfad sucht, an dessen erster Stelle standardmässig der Ordner des Moduls steht.
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 22:02
von funkheld
Weil Python in seinem Suchpfad sucht, an dessen erster Stelle standardmässig der Ordner des Moduls steht.
Eben, der liegt ja ganz woanders, und nicht in meinem Ordner "Demo"
Gruss
Re: Fehlermeldung bei "import"
Verfasst: Mittwoch 3. November 2010, 22:13
von Hyperion
funkheld hat geschrieben:
Weil Python in seinem Suchpfad sucht, an dessen erster Stelle standardmässig der Ordner des Moduls steht.
Eben, der liegt ja ganz woanders, und nicht in meinem Ordner "Demo"
Du startest Doch ein Modul... und da sucht Python nun mal zuerst
Es ging mir mit meiner Nachfrage ja um den Erkenntnisgewinn, dass man seine eigenen Module nicht genauso benennen sollte, wie bereits existierende
