我阅读了这里的每一本手册和答案,但仍然不理解Pyinstaller的行为。
我编辑了一个.spec文件,其中添加了我的导入:
hiddenimports=['ftfy','sqlalchemy','mysql','pymysql','xlrd','xlwt','xlutils']
所有这些软件包都安装了pip
。
Pyinstaller构建一个文件夹时的一些有趣问题:
62573 INFO: Found 4 sqlalchemy hidden imports
62577 WARNING: Hidden import "pysqlite2" not found!
62580 WARNING: Hidden import "MySQLdb" not found!
67597 WARNING: Hidden import "sqlalchemy.sql.functions.func" not found!
67623 INFO: Import to be excluded not found: 'sqlalchemy.testing'
sqlalchemy
确实使用了其他包,在我的项目中,它是用于连接MySQL数据库的mysql
。每个lib都在默认目录C:PythonLibsite-packages
中
为什么
dist
制作完成后,我的hiddenimport
什么也看不到?看来这种说法并没有真正奏效。当我尝试运行.exe:时FileNotFoundError: [Errno 2] No such file or directory: 'D:\rs_al\IdeaProjects\ExcelToSQL\PyXLSQL\dist\service\ftfy\char_classes.dat' [1668] Failed to execute script service
我应该完全信任
pyinstaller
分析的依赖关系吗?我使用了pandas
的一小部分,pyinstaller
建议挂接一个numpy
包。
这个与雪花相关的问题很常见——无论是执行.exe文件时的NoModuleFound错误,还是编译过程中的Hidden导入错误。
包括以下3种进口产品。它对我有效。
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from snowflake.sqlalchemy import URL
有关更多解决方案,请参阅此Stackoverflow页面:NoSuchModuleError:无法加载插件:sqlalchemy.方言:雪花