如何修复SyntaxError:语法无效/从Modbus导入*?

时间:2020-03-31 17:27:49

标签: python windows pip exe modbus

我想从代码源获取.exe文件,但是执行python main.py build会导致此错误:

C:\MyProject>python main.py build
Traceback (most recent call last):
File "main.py", line 5, in <module>
import parserz as parser
File "C:\MyProject\parserz.py", line 9
import * from modbus
       ^
SyntaxError: invalid syntax

请问有什么主意吗? 点子可能有问题吗?

3 个答案:

答案 0 :(得分:1)

在python中,您可以这样导入

from modbus import *

此外,在python中,仅导入所需内容是一种很好的做法。

所以您不应该使用from .... import *来代替

from modbus import something

答案 1 :(得分:1)

您可以导入模块并使用

运行所有常规代码
import modbus

或者您可以从文件中导入所有类,函数,变量等,以供以后在代码中使用

from modbus import *

为了说明我的观点:

如果您有两个文件 my_imports.py main.py ,其中包含以下代码:

my_imports.py:

print('Imported module my_imports')

def add_nums(a,b):
    return a+b

def another_function():
    return 'this function was also called'

(版本1)main.py:

import my_imports

# this code would fail because the function isn't imported
print(add_nums(5,7))

(版本2)main.py:

from my_imports import *

print(add_nums(5,7))
print(another_function())
  • 在main.py的版本1 中,您会在输出中看到Imported module my_imports,但是当您尝试使用 在{strong> my_imports.py 中定义的add_nums函数。
  • 在main.py的版本2 中,您仍将在输出中看到Imported module my_imports,但您还将看到在输出中调用其他两个函数的结果,因为它们现已可用用于 main.py
12
this function was also called

如其他一些答案中所述,您也可以仅从其他python脚本中导入所需的功能。例如,如果您只想使用add_nums方法,则可以使用

from my_imports import add_nums

在您的 main.py 中。

答案 2 :(得分:0)

通常from modbus import *就足够了。但是导入所有内容通常不是一个好主意,因此我建议使用import modbus as mb。另外,您可能想要研究pyModbus或minimalModbus之类的Modbus库。这是一个很好的链接,描述了他们的优缺点:Python modbus library