如何修复 Python 3.8 中的错误"No module named 'builtin'"



我正在尝试将Matlab文件转换为Python,所以我找到了一个名为smop的库。每当我运行一个导入smop库的代码时,我都会收到一个错误。以下是我如何导入烟雾

from smop.libsmop import *

这是我收到的错误信息

python3.8/site packages/smop-0.41b0-py3.8.egg/smop/libsmop.py";,第6行,在ModuleNotFoundError:没有名为">内置"的模块

如何修复此错误?

这个问题是本周早些时候提出的。您需要与包的作者核实,也许还需要提交一份错误报告。它声称是针对Python3的,但它使用的是Python2构造。您可以通过将该文件libsmop.py.中的__builtin__更改为builtins来解决此问题

只需使用SMOP的更新分支,在完成:python setup.py安装后,您必须转到站点包所在的目录并解压缩.egg文件。该项目不再维护。无论如何,我(从另一个Python3 fork(派生了它,并在这里修复了更多的错误:

https://github.com/mattslezak-shell/smop/

真的,我认为这是用于MATLAB中的原型代码。它实现了一些有趣的MATLAB兼容性层,其中一些东西除了保留类似MATLAB的结构之外,似乎什么都没做(比如vargin/nargin(。

尽管它的格式很奇怪,但我不知道还有什么能自动为你转换大部分内容。您可能需要添加一些导入语句并对代码进行一些重构,这取决于您转换的.m文件的复杂性。我想它胜过手动转换,但它仍然不是一个真正的";转换器;更像是部分MATLAB包装器。有些代码可以正常工作,但许多文件需要添加一些导入或进行其他重构才能获得所需的结果。

尽管如此,它还是有利于从Python中测试MATLAB代码,至少。。。

最新更新