Создание исполняемого файла моего скрипта Python - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь создать исполняемый файл из моего скрипта Python.Конфигурация системы:

python --version : 
                Python 2.7.15 :: Anaconda, Inc.
                conda : 4.3.16
                numpy : 1.14.3
                pandas : 0.23.4
                py2exe : 0.6.9
                pyinstaller : 3.4
                cx-Freeze : 5.1.1

Метод 1: Я пытался pyinstaller, но, к сожалению, ему нужно PyQt5, и, поскольку pyqt5 не поддерживается для среды python 2.7, я не смогпродолжить этот метод https://pypi.org/project/PyQt5/#files

Метод 2: py2exe 1) python setup.py install 2) python setup.py py2exe, но когда я запускаю свой исполняемый файл в cmd, я получаюследующая ошибка

ошибка:

X:\Data_Analytics\ETL\dist>Expiry.exe
Traceback (most recent call last):
  File "Expiry.py", line 5, in <module>
  File "pandas\__init__.pyc", line 19, in <module>
ImportError: Missing required dependencies ['numpy']

Файл кода установки:

from distutils.core import setup
import py2exe
import sys
sys.setrecursionlimit(5000)

setup(console=['Expiry.py'])

Метод 3: cx_Freeze команда: python setup.py build настройкаfile:

from cx_Freeze import setup, Executable 

setup(name = "Expiry" , 
      version = "1.0" , 
      description = "" , 
      executables = [Executable("Expiry.py")]) 

Ошибка:

X:\Data_Analytics\ETL\build\exe.win-amd64-2.7>Expiry.exe
Traceback (most recent call last):
  File "X:\Anaconda\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
    module.run()
  File "X:\Anaconda\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
    exec(code, m.__dict__)
  File "Expiry.py", line 5, in <module>
  File "X:\Anaconda\lib\site-packages\pandas-0.23.4-py2.7-win-amd64.egg\pandas\__init__.py", line 19, in <module>
    "Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']

Я также попытался переустановить pandas и numpy, попытался переустановить anaconda, но безуспешно.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

@ jpeg, как указано, вот мое решение, которое сработало после вашей рекомендации.

from cx_Freeze import setup, Executable 
options = {'build_exe': {'packages': ['numpy'], 'include_files':['X:\Anaconda\Lib\site-packages\mkl_intel_thread.dll']} }

setup(name = "Expiry" , 
       version = "1.0" , 
       description = "" ,
       options = options,  
       executables = [Executable("Expiry.py")])
0 голосов
/ 13 ноября 2018
  1. Вы должны иметь возможность без ошибок запускать следующие команды в консоли Python:

    import numpy
    print numpy.__version__
    import pandas
    print pandas.__version__
    

    Если это не работает, сначала вам нужно (пере) установить numpy и pandas в этом порядке.

  2. Чтобы заморозить сценарий в зависимости от pandas (и, следовательно, numpy) с cx_Freeze, вам необходимо явнодобавьте numpy в список packages опций build_exe.Попробуйте выполнить следующую модификацию вашего скрипта установки:

     from cx_Freeze import setup, Executable 
    
     options = {'build_exe': {'packages': ['numpy']}}
    
     setup(name = "Expiry" , 
           version = "1.0" , 
           description = "" ,
           options = options,  
           executables = [Executable("Expiry.py")])
    

    См. Создание exe cx_Freeze с Numpy для Python .

...