【问题标题】:Error in importing "asammdf" in Robotframework在 Robotframework 中导入“asammdf”时出错
【发布时间】:2020-07-22 02:41:45
【问题描述】:

我在 python 中编写了一个自定义库,它导入了一个名为“asammdf”的包。但是,当我在机器人代码中导入我的自定义库时,它在 python 中导入“asammdf”时显示错误。它说:“文件 *.robot 中的错误。导入测试库 *.py 失败。导入错误:DLL 加载失败:找不到指定的模块。”

“asammdf”包在它在执行期间提到的 PYTHONPATH 之一中可用。

有人可以帮我做这件事并告诉我,我做错了什么吗? 我的 python 文件(trialRobot.py):

import asammdf
...
...
...

我的机器人文件(TC1.robot):

*** Settings ***
Library trialRobot.py

*** Test Cases ***
TC1
   DO THIS
   DO THAT

它显示的错误是:

[ ERROR ] Error in file 'G:\AutomationRobotFramework\RobotAutomationFramework\TC1.robot': Im
porting test library 'G:\AutomationRobotFramework\RobotAutomationFramework\trialRobot.py' fa
iled: ImportError: DLL load failed: The specified module could not be found.
Traceback (most recent call last):
  File "G:\AutomationRobotFramework\RobotAutomationFramework\trialRobot.py", line 1, in <mod
ule>
    import asammdf
  File "g:\automationrobotframework\venv\lib\site-packages\asammdf\__init__.py", line 15, in
 <module>
    from .blocks.mdf_v2 import MDF2
  File "g:\automationrobotframework\venv\lib\site-packages\asammdf\blocks\mdf_v2.py", line 4
, in <module>
    from .mdf_v3 import MDF3
  File "g:\automationrobotframework\venv\lib\site-packages\asammdf\blocks\mdf_v3.py", line 4
4, in <module>
    from ..signal import Signal
  File "g:\automationrobotframework\venv\lib\site-packages\asammdf\signal.py", line 9, in <m
odule>
    from .blocks.utils import MdfException, extract_cncomment_xml, SignalSource
  File "g:\automationrobotframework\venv\lib\site-packages\asammdf\blocks\utils.py", line 27
, in <module>
    from cchardet import detect
  File "g:\automationrobotframework\venv\lib\site-packages\cchardet\__init__.py", line 1, in
 <module>
    from cchardet import _cchardet

PYTHONPATH:
  G:\AutomationRobotFramework\venv\Scripts\robot.exe
  C:\Program Files\Python37\python37.zip
  C:\Program Files\Python37\DLLs
  C:\Program Files\Python37\lib
  C:\Program Files\Python37
  g:\automationrobotframework\venv
  g:\automationrobotframework\venv\lib\site-packages
  g:\automationrobotframework\venv\lib\site-packages\pip-19.0.3-py3.7.egg

但是,asammdf 包是使用 pip 安装在 python 中的,没有任何名称或位置冲突。它只安装一次,并且在默认情况下安装 pip 的文件夹中。 提前致谢。

【问题讨论】:

    标签: python robotframework robotframework-ide


    【解决方案1】:

    您需要安装 cchardet 2.1.5

    【讨论】:

      【解决方案2】:

      您需要提供example.py文件的绝对路径或相对路径。

      很喜欢,

      *** Settings ***
      Library C:/SomeFolder/example.py
      

      *** Settings ***
      Library ../folder/example.py
      

      【讨论】:

      • (1/n) 感谢您的回复。但是,我的问题是关于使用 pip 或类似的东西安装在 python 中的库。不是那些,我正在编写作为自定义脚本。所以,我正在创建一个名为“Example.py”的自定义库。在 example.py 中,当我尝试在我的机器人文件中导入 example.py 时,我正在导入一些名为“asammdf”的预安装 python 模块(就像 numpy、pandas 等),它给出了错误提示,asammdf not found。但是,它已安装。在我导入 numpy 时,它工作正常。我认为这是“asammdf”中给出的相对路径的问题。
      • (2/n) 在“asammdf”中,有一些导入,例如“from .abc import xyz”和“..abc import xyz”。我认为,机器人文件对它的位置感到困惑。因为,它不适用于所有具有这种相对导入的 python 模块。另一个例子是“keras”。在 Keras 中也是如此。
      • (3/n) 你能告诉我,如何处理这个吗?因为,我想使用的所有模块都是使用 pip 安装的,而且也是独一无二的。没有名称冲突。它们只安装一次,而且都安装在同一个位置,python 默认安装它们。
      • (4/n) 我已经用执行时显示的确切错误编辑了问题。如果可以的话,您可以检查并尝试帮助我。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 2012-08-13
      • 2020-01-03
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多