2015-12-21 20 views
3

Я только что закончил свою первую работу с python, и я хотел бы создать исполняемый файл для распространения. Однако у меня возникают проблемы с этим. Я уже пробовал py2exe, pyinstaller и cx_freeze без успеха. Поиск множества мнений, я считаю, что pyinstaller - лучшее решение для моей проблемы, но я могу заставить его работать. Импорт я делаю в моей программе ниже:Создание исполняемого файла Python

import os 
import pygtk 
import gtk 
import MySQLdb 
import getpass as gt 
import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
from pandas.io import sql 
from scipy import stats, integrate 
from scipy.optimize import curve_fit 
import seaborn as sns 
from sklearn.neighbors import KNeighborsClassifier 
from sklearn.cross_validation import train_test_split 
from sklearn import metrics 

Чтения документации pyinstaller я заметил, что он только не работает с ЛИЭСОМ scikitlearn (sklearn) и Сиборном. Когда я использую «pyinstaller --onefile Principal.py» Я получаю сборки и Dist паст, но когда я пытаюсь запустить exe-файл, я получаю следующее сообщение:

C:\Users\Lucas\AppData\Local\Temp\_MEI82242\gtk\__init__.py:127: RuntimeWarning: 
PyOS_InputHook is not available for interactive use of PyGTK 
Traceback (most recent call last): 
    File "<string>", line 13, in <module> 
    File "c:\users\lucas\appdata\local\temp\pip-build-6fpfyh\pyinstaller\PyInstall 
er\loader\pyimod03_importers.py", line 363, in load_module 
    File "c:\users\lucas\anaconda\lib\site-packages\pandas\__init__.py", line 13, 
in <module> 
    "extensions first.".format(module)) 
ImportError: C extension: lib not built. If you want to import pandas from the s 
ource directory, you may need to run 'python setup.py build_ext --inplace' to bu 
ild the C extensions first. 
Principal returned -1 

Может кто-то помочь мне с тем, что я нужно сделать?

+0

Может быть, вы могли бы посмотреть на использование Докера? Я не думаю, что «упаковка python для exe» - очень хорошо поддержанный или рекомендуемый рабочий процесс. – maxymoo

+0

Вашему приложению необходимо перестроить пакет pandas для создания приложения. Импортирующий модуль (pandas) не распространяется. Для некоторых пакетов требуется компиляция. Установите готовые для использования библиотеки. Вы не можете использовать внутри .exe, если у вас нет исходного кода. Не ошибка, отсутствует пакет (источник)! – dsgdfg

+0

Так что вы рекомендуете делать? Я пытаюсь создать исполняемый файл, чтобы позже создать установщик с помощью Inno (он запрашивает файл .exe). Если я использую exe, который создает pyinstaller для меня, и добавьте пути к pandas, а другие libs в Inno должны ли мои программы работать? –

ответ

0

Ваша проблема в том, что ваш python не может построить пакет на основе C (numpy). Может быть, некоторые из библиотек, где установлены:

  • в дистрибутиве питона (анаконда)
  • с помощью установочного файла колеса (.whl), который прекомпилирована пакет

Вы можете попытаться решить эта проблема двумя способами:

  • установить последнюю MS Visual C++ компилятор, так что вы будете использовать vcvarsall.bat для расширений C
  • установить последние Visual Studio Community, которые включают в себя IDE и компиляторы для большого количества языков. Это второй вариант нормально работает, но он требует более 6 ГБ ом жесткого диска

После установки вы можете запустить то, что сообщение об ошибке говорили вам:

python setup.py build_ext --inplace 
Смежные вопросы