如何修复 Python 中的 'import asammdf' 错误 3

How to fix 'import asammdf' error in Python 3

我正在尝试读取一些 MDF 文件,因此我计划在 Python 3.

中使用 asammdf 包

我已经使用命令 conda install -c conda-forge asammdf 在 Windows 10 的 anaconda 环境中安装了最新版本的 asammdf 5.6.0(如 asammdf 文档中所述)。 每次我 运行 低于 python 3 的命令 从 asammdf 导入 MDF 显示错误。

from asammdf import MDF

我希望应该加载库,但实际错误是:

Traceback (most recent call last):

  File "<ipython-input-4-7f55c56e4067>", line 1, in <module>
    from asammdf import MDF

  File "C:\Users\AppData\Local\conda\conda\envs\machinelearning1\lib\site-packages\asammdf\__init__.py", line 17, in <module>
    from .blocks.mdf_v4 import MDF4

  File "C:\Users\AppData\Local\conda\conda\envs\machinelearning1\lib\site-packages\canmatrix\__init__.py", line 6, in <module>
    __version__ = canmatrix._version.get_versions()['version']

AttributeError: module 'canmatrix' has no attribute '_version'

这听起来像是模块安装问题或安装冲突问题。这可能发生在以下情况:

  1. 您在多个不同的地方安装了相同的模块。
  2. 您安装了多个模块,并且两 (2) 个或更多依赖于同一子模块的不同版本。

尝试以下操作:

  1. 启动一个新的 Python 环境。
  2. 尽可能将此环境与所有其他环境隔离(尽可能不要共享模块、可执行文件、.dll)
  3. 确保环境只安装了基础 Python 包,没有非内置库或模块。
  4. 安装所需的包,并测试导入。
  5. 如果这解决了您的导入问题,您将必须一个接一个地安装您需要的其他模块,测试导入在每个模块之后是否仍然有效。

最后,这个问题通过一些技巧得到了解决。我安装为新的 conda env,然后安装了 asammdf。然后我通过 conda remove 删除了 canmatrix 并使用命令

再次安装它

conda 安装-c conda-forge/label/gcc7 canmatrix

然后就可以了。