【发布时间】:2019-08-17 08:24:23
【问题描述】:
我正在尝试在 Windows 7 Professional 上编写一个程序,该程序将根据用户输入进行预测。该程序旨在供其他计算机上未安装 python 的用户使用。
为了做到这一点,我使用 Python 3.5.6 在 Spyder 中编写了一个 GUI 脚本。我可以很好地执行代码并且 GUI 运行良好,但是,当我尝试将其转换为其他人可以使用 pyinstaller 使用的可执行文件时,它会挂起。
我很确定这是由于在脚本中导入了外部模块,例如 numpy 和 keras。
如果我排除模块,则生成可执行文件,但是,它不起作用,因为它没有运行所需的模块。
我在下面提供了一个非常简单的示例脚本,由于它是专有的,因此我无法在此处重现我的实际代码。
我编写了一个单独的脚本,在其中导入了所有必要的模块,我认为这可能会有所帮助,但它没有。模块列表如下,不包括自定义脚本。
numpy 熊猫 sklearn 喀拉斯 tkinter
简单示例
以下 setup.py 文件和命令起作用,制作一个简单的 exe,用户无需安装 python 即可运行:
# setup.py:
input('Press ENTER to begin.')
num1 = float(input('Number 1 '))
num2 = float(input('Number 2 '))
print([num1,num2])
input('Press ENTER to exit.')
# Command in IPython Console of Spyder
!pyinstaller setup.py --onefile
以下 setup.py 文件和命令不起作用,而是挂起并且没有收到错误消息:
# setup.py:
import numpy as np
input('Press ENTER to begin.')
num1 = float(input('Number 1 '))
num2 = float(input('Number 2 '))
print(np.array([num1,num2]))
input('Press ENTER to exit.')
# Command in IPython Console of Spyder
!pyinstaller setup.py --onefile
以下 setup.py 文件和命令确实会生成一个 exe,但是,它会在打开后立即关闭,因为它需要 numpy 才能正常运行:
# setup.py:
import numpy as np
input('Press ENTER to begin.')
num1 = float(input('Number 1 '))
num2 = float(input('Number 2 '))
print(np.array([num1,num2]))
input('Press ENTER to exit.')
# Command in IPython Console of Spyder
!pyinstaller setup.py --onefile --exclude-module numpy
我真的很茫然,不知道该怎么办。我查看了文档和以前的问题,但没有发现任何有用的东西,而且无论是什么问题,这些建议都没有解决问题。
【问题讨论】:
标签: windows-7 exe python-3.5 pyinstaller spyder