如何解决SyntaxError:语法无效/从modbus导入*?

问题描述 投票:-1回答:3

我想从代码源获取.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

有什么想法吗?点子可能有问题?

python windows pip exe modbus
3个回答
1
投票

在python中,您以这种方式导入

from modbus import *

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

所以您不应该使用from .... import *而是使用

from modbus import something

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'

((version 1)main.py:

import my_imports

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

((version 2)main.py:

] >>
from my_imports import *

print(add_nums(5,7))
print(another_function())
  • main.py的版本1中,您会在输出中看到Imported module my_imports,但是当您尝试使用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

中。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.