Python: Sqlalchemy messing up pyinstaller?



我正在尝试使用 pyinstaller 打包我的程序。该代码在Windows上运行良好,并使用SqlAlchemy,OpenCV和pyodbc包。

我运行pyinstaller来创建可执行文件并尝试运行它。我收到错误:

ImportError: No module named ConfigParser

现在,我重新运行了同样的事情并查看了pyinstaller的日志并收到警告:

WARNING: Hidden import "sqlalchemy.sql.functions.func" not found!

以及其他一些人。然后有一个关于尝试以小写和大写导入 ConfigParser 的警告。

 Attempted to add Python module twice with different upper/lowercases: ConfigParser

这里可能有什么问题?

所以,我想通了。在一定程度上。
似乎pyInstaller不能很好地处理SWIG文件。

sqlalchemy.utils中有一个名为 compat.py 的文件。它的存在是为了使模块与所有版本的python兼容。

例如,在 python2.x 中,有ConfigParser而在 py3 中,它被命名为 configparser
因此,compat.py 有一部分来处理它:

if py3:
    import configparser
    # Some other such import statements
elif py2:
    import ConfigParser as configparser

现在,pyinstaller 在这里被难住了,因为它只专注于导入,因此它试图导入两者并惨遭失败。
我对此的粗略解决方法包括修改 compat.py 文件并仅保留与我拥有的python版本(2.x)相关的部分。
再次运行pyinstaller被证明是成功的!:)

虽然这一切都非常粗糙,而且可能有更好的东西,但我找不到任何东西,所以我分享了对我有用的东西。

相关内容

  • 没有找到相关文章

最新更新