如何将需要导入模块的python脚本转换为Windows中的可执行文件

时间:2019-03-26 20:40:01

标签: windows-7 exe python-3.5 pyinstaller spyder

我正在尝试在Windows 7 Professional上编写一个程序,该程序将根据用户输入进行预测。该程序供其他未在其计算机上安装python的用户使用。

为此,我使用Python 3.5.6在Spyder中编写了GUI脚本。我可以很好地执行代码,并且GUI可以很好地工作,但是,当我尝试将其转换为其他人可以使用pyinstaller使用的可执行文件时,它将挂起。

我很确定这是由于在脚本中导入了numpy和keras等外部模块。

如果我不包含这些模块,则会生成可执行文件,但是,该文件不起作用,因为它没有运行所需的模块。

我在下面提供了一个非常简单的示例脚本,因为由于它是专有的,所以我无法在此处复制实际代码。

我写了一个单独的脚本,在其中导入了所有必需的模块,认为这样做可能有所帮助,但没有帮助。下面列出了模块列表,不包括自定义脚本。

numpy 大熊猫 斯克莱恩 凯拉斯 tkinter

简单示例

以下setup.py文件和命令可以正常工作,使用户无需安装python即可运行一个简单的exe:

# 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

我真的很茫然,不知道该怎么办。我浏览了文档和以前的问题,没有发现任何有用的东西,这些建议也没有解决问题,无论可能是什么。

1 个答案:

答案 0 :(得分:0)

使用Cx_freeze()模块将您的python文件转换为 exe