मैं Arduino पर एक उदाहरण की कोशिश कर रहा हूँ: http://playground.arduino.cc/Interfacing/Python
उदाहरण (Ubuntu पर चल रहा है) शेल में बहुत अच्छा काम करता है:
import serial
ser = serial.Serial("/dev/ttyACM0", 9600)
while True:
print(ser.readline())
हालांकि एक स्क्रिप्ट के रूप में निष्पादित करने का प्रयास:
डेस्कटॉप / python_arduino /./ serial.py...
जो इस पर अमल करता है:
#!/usr/bin/env python
import serial
ser = serial.Serial("/dev/ttyACM0", 9600)
while True:
print(ser.readline())
और मुझे यह मिलता है:
Traceback (most recent call last):
File "Desktop/python_arduino/./serial.py", line 2, in <module>
import serial
File "/home/leo/Desktop/python_arduino/serial.py", line 4, in <module>
ser = serial.Serial("/dev/ttyACM0", 9600)
AttributeError: "module" object has no attribute "Serial"
इस असंगति का कारण क्या है? यह आसान होना चाहिए import serial
शेल या स्क्रिप्ट की परवाह किए बिना सही?
उत्तर:
जवाब के लिए 2 № 1मुझे यह मिला!
मुद्दा वास्तव में सूक्ष्म था फिर भी सरल।
स्क्रिप्ट फ़ाइल नाम आयात के समान नाम था।
तो फ़ाइल नाम था serial.py। मॉड्यूल को कहा जाता है धारावाहिक, इसलिए इसने एक संघर्ष पैदा किया।
मैंने स्क्रिप्ट का नाम बदल दिया, और इसने काम किया।
उत्तर № 2 के लिए 1
शेल और आपकी स्क्रिप्ट के बीच का अंतर अलग-अलग पथ सेटअप हो सकता है। रास्तों की तुलना करें और देखें कि क्या स्क्रिप्ट बनाम शेल के लिए कुछ भी अलग है
import ser
print ser.__file__
import sys
print sys.executable