Как преобразовать скрипт Python, который требует импортированные модули в исполняемый файл в Windows - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь написать программу для Windows 7 Professional, которая будет делать прогнозы на основе пользовательских данных. Эта программа предназначена для использования другими пользователями, у которых на компьютерах не установлен python.

Чтобы сделать это, я написал GUI-скрипт на Spyder с использованием Python 3.5.6. Я могу хорошо выполнить код, и графический интерфейс работает отлично, однако, когда я пытаюсь преобразовать его в исполняемый файл, который другие люди могут использовать с помощью pyinstaller, он зависает.

Я совершенно уверен, что это связано с импортом в скрипт внешних модулей, таких как numpy и keras.

Если я исключаю модули, исполняемый файл создается, однако он не работает, так как не имеет необходимых модулей для функционирования.

Ниже я привел очень простой пример сценария, так как я не могу воспроизвести мой фактический код здесь из-за его авторского права.

Я написал отдельный скрипт, в котором импортирую все необходимые модули, думая, что это может помочь, но это не помогло. Список модулей приведен ниже, за исключением пользовательских сценариев.

NumPy панд sklearn keras 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

Я действительно в растерянности и не уверен, что делать. Я просмотрел документацию и предыдущие вопросы и не нашел ничего полезного, и предложения не устранили проблему, какой бы она ни была.

...