使用Pyinstaller转换为exe的Python Tkinter无法处理作为参数传递的模块

3lxsmp7m  于 2023-02-15  发布在  Python
关注(0)|答案(1)|浏览(133)

我有一个tkinter应用程序,我用pyinstaller将其转换为exe。
在应用程序中,用户可以配置(添加自己的脚本)执行。**我有以下代码:
script_ABC = config['setup']['script_ABC']
exec(f"from user_scripts.{script_ABC} import *")
我的config.ini文件如下所示:
[setup] script_ABC = s1.py
这在转换为exe之前有效,但转换为exe之后就不再有效了。
我所说的工作是指:

  • 用户可以创建脚本:网站,s2.py,
  • 粘贴到文件夹:./用户脚本,
  • 按如下方式调整config.ini:脚本_ABC = www.example.coms2.py

我使用以下代码来确定路径:
if getattr(sys, 'frozen', False):
application_path = path.dirname(sys.executable)
elif __file__:
application_path = path.abspath(path.dirname(__file__))
所以这不是问题。
有什么想法如何实现我想要的替代方法?
我尝试了不同的位置、导入库等

pxy2qtax

pxy2qtax1#

你试过包含隐藏的导入/数据吗?如果你有隐藏的导入并且你使用pyinstaller,它应该有这样的内容

pyinstaller --clean --hidden-import"path_to_your_file" main.py --onefile

如果它是一个库,则应该是这样:

pyinstaller --clean --hidden-import="pythonlibrary" main.py --onefile

如果你必须添加数据(例如,在我的例子中,它是一个经过训练的神经元网络),你的pyinstaller命令应该是这样的:

pyinstaller --clean --add-data="path_to_your_data" main.py --onefile

相关问题