/ / पायथन सीरियल शेल में काम करता है लेकिन स्क्रिप्ट में नहीं? - अजगर, खोल, सीरियल-पोर्ट, आर्डिनो

पायथन सीरियल खोल में काम करता है लेकिन लिपि नहीं? - अजगर, खोल, धारावाहिक बंदरगाह, arduino

मैं 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