Python 如何修复SyntaxError:modbus中的无效语法/导入*?

Python 如何修复SyntaxError:modbus中的无效语法/导入*?,python,windows,pip,exe,modbus,Python,Windows,Pip,Exe,Modbus,我想从代码源获取.exe文件,但执行python main.py build会导致以下错误: C:\MyProject>python main.py build 回溯(最近一次呼叫最后一次): 文件“main.py”,第5行,在 将parserz作为解析器导入 文件“C:\MyProject\parserz.py”,第9行 从modbus导入* ^ SyntaxError:无效语法 有什么想法吗? 在python中,您这样导入的pip可能有问题 from modbus import * 此外

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

C:\MyProject>python main.py build
回溯(最近一次呼叫最后一次):
文件“main.py”,第5行,在
将parserz作为解析器导入
文件“C:\MyProject\parserz.py”,第9行
从modbus导入*
^
SyntaxError:无效语法
有什么想法吗?
在python中,您这样导入的pip可能有问题

from modbus import *
此外,在python中,最好只导入您需要的内容

所以你不应该使用来自。。。。导入*而不是使用

from modbus import something

您可以导入模块并使用运行所有普通代码

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

来自modbus导入的
*

为了说明我的观点:

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

my\u imports.py:

print('Imported module my\u imports')
def附加值(a、b):
返回a+b
定义另一个函数()
return“此函数也被调用”
(第1版)main.py:

导入我的\u导入
#此代码将失败,因为函数未导入
打印(添加数字(5,7))
(版本2)main.py:

从my_导入*
打印(添加数字(5,7))
打印(另一个函数()
  • 在main.py的verion 1中您将在输出中看到导入的模块my_imports,但是当您尝试使用
    add\u nums
    my\u imports.py中定义的函数
  • 在main.py的第2版中您仍然会在输出中看到导入的模块my_imports,但您也会在输出中看到调用其他两个函数的结果,因为它们现在可在main.py中使用:
12
这个函数也被称为
正如在其他一些答案中提到的,您还可以从另一个python脚本导入所需的功能。例如,如果您只想使用add_nums方法,则可以使用

从我的\u导入添加\u nums

在您的main.py中

通常,modbus导入的
就足够了。但一般来说,导入所有modbus不是一个好主意,因此我建议
将modbus导入为mb
。此外,您可能希望查看类似pyModbus或minimalModbus的modbus库。这里有一个很好的链接描述了它们的优缺点:

在哪个文件中?我有3个文件:main.py、parserz.py和modbus.py,我已经在parserz.py中添加了modbus,其中有一行:import*from modbus更改
import*from modbus
from modbus import*
,如果这是您唯一需要modbus功能的地方,请在parserz.py文件中添加modbus。