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

问题描述 投票:0回答:1

我正在尝试在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

我真的很茫然,不知道该怎么办。我仔细阅读了文档和以前的问题,没有发现任何有用的方法,这些建议也未能解决问题,无论它是什么。

windows-7 exe python-3.5 pyinstaller spyder
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.