【问题标题】:How can I fix SyntaxError: invalid syntax/ import * from modbus?如何修复 SyntaxError: invalid syntax/ import * from modbus?
【发布时间】:2020-03-31 17:27:49
【问题描述】:

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

有什么想法吗? 可能是 pip 的问题?

【问题讨论】:

    标签: python windows pip exe modbus


    【解决方案1】:

    在python中你像这样导入

    from modbus import *
    

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

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

    from modbus import something
    

    【讨论】:

      【解决方案2】:

      您可以导入模块并使用

      运行所有正常代码
      import modbus
      

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

      from modbus import *
      

      为了说明我的观点:

      如果您有两个文件 my_imports.pyma​​in.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,但是当您尝试使用 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
      

      在您的 ma​​in.py 中。

      【讨论】:

      • 在哪个文件中?我有 3 个文件:main.py、parserz.py 和 modbus.py,并且我已经在 parserz.py 中添加了 modbus,其中包含以下行:import * from modbus
      • 如果这是您需要 modbus 功能的唯一地方,请将您的 parserz.py 文件中的 import * from modbus 更改为 from modbus import *
      【解决方案3】:

      一般from modbus import * 就足够了。但一般来说全部导入不是一个好主意,所以我推荐import modbus as mb。此外,您可能想查看 pyModbus 或 minimumModbus 等 modbus 库。这是一个很好的链接,描述了它们的优缺点:Python modbus library

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-17
        相关资源
        最近更新 更多