Python:Sqlalchemy弄乱了pyinstaller?

时间:2016-07-08 09:59:37

标签: python opencv sqlalchemy 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

这可能是什么问题?

1 个答案:

答案 0 :(得分:0)

所以,我明白了。在某种程度上 好像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证明是成功的! :)

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