Python导入问题

时间:2017-06-27 14:56:32

标签: python import

我的代码收到以下错误:

  

NameError:名称'ser'未定义

Mainpythonfile.py:

import serial
from commands import *

############## Initializing COM -Port #####################
ser = serial.Serial()
ser.baudrate = 19200
ser.port = 'COM3'
ser.timeout = 0.1
ser.open()
print("Serial Port geöffnet: ", ser.is_open)
write("ADR 06")

commands.py:

def write(text):
    ser.write(bytes("{}\r".format(text), 'utf-8'))    
    #print(bytes("{}\r".format(text), 'utf-8'))
    return ser.readline().decode('utf-8')

我的代码有什么问题,希望你能帮帮我:)。

2 个答案:

答案 0 :(得分:0)

commands.py不了解Mainpythonfile.py内的变量。

然而,您可以将变量传递给函数:

<强> Mainpythonfile.py:

ser = serial.Serial()
...
write(ser, "ADR 06")

<强> commands.py:

def write(ser, text):
    ser.write(bytes("{}\r".format(text), 'utf-8'))    
    #print(bytes("{}\r".format(text), 'utf-8'))
    return ser.readline().decode('utf-8')

请注意ser现在是函数write的参数,并且您是从主模块传递的。

答案 1 :(得分:0)

最快的解决方案是将ser添加为write的参数,并在主脚本中调用它时将实例化的ser传递给。