Уведомления

Группа в Telegram: @pythonsu

#1 Март 10, 2010 14:23:27

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

Хочу собрать програмку в в синг exe файл.

Код програмки

import pycurl
Конфиг
from distutils.core import setup
import py2exe
import sys


if not 'py2exe' in sys.argv:
sys.argv.append('py2exe')

options = {"py2exe": {"compressed": 1,
"optimize": 1,
"packages": ['encodings'],
"bundle_files": 1,
}
}
program = {"script": "test3.py"}

setup(
options = options,
windows = [program],
zipfile = None,
# zipfile = "lib/libraries.zip",
)
После при запуске exe получаю :

Traceback (most recent call last):
File "test3.py", line 4, in <module>
File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading pycurl.pyd
Подскажите как разобраться с этим?



Офлайн

#2 Март 10, 2010 14:33:43

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

Уберите bundle_files, с ним постоянно проблемы вылезают…



Офлайн

#3 Март 10, 2010 16:52:55

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

Я вполне понимаю, что убрав его у меня все отлично заработает.
Но мне нужен один exe.

Есть ли другие варианты?



Офлайн

#4 Март 10, 2010 21:19:47

PitPytoni
От:
Зарегистрирован: 2010-02-14
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

попробуй pyinstalers



Офлайн

#5 Март 16, 2010 14:12:33

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

PitPytoni
попробуй pyinstalers
Попробовал..
Для меня пока темный лес..

немного усложнил собираемую программу..

import pycurl, time
from PyQt4 import QtGui4, QtCore4
сделал
1) C:\Python26\python.exe C:\pyinstaller\Makespec.py -F -w -d –out=D:\Coding\Tests\toexe D:\Coding\Tests\exe.py
2) C:\Python26\python.exe C:\pyinstaller\Build.py D:\Coding\Tests\toexe\exe.spec

Запускаю собранный exe:
ImportError: cannot import name QtGui4
Куда QT надо втискивать?

Чем pyinstaller` а не понятен импорт в py файле., т.е. почему он не подцепил модуль явно указанный в импорте.

UPD

C грехом пополам собрал все в один exe….
Взял pyinstaller с http://svn.pyinstaller.org/trunk/


Но файл предупреждений по прежнему полон ошибок..
Как с ними быть.. Может вообще забить на них… Приложение вроде, работает, пока не тестил все..

Вот кусок ворнингов

W: no module named _dummy_threading (top-level import by dummy_threading)
W: no module named pwd (delayed, conditional import by posixpath)
W: no module named ctypes.cdll (delayed import by ctypes.util)
W: no module named fcntl (conditional import by subprocess)
W: no module named readline (delayed import by pdb)
W: no module named AES (delayed, conditional import by archive)
W: no module named _scproxy (conditional import by urllib)
W: no module named pwd (delayed import by getpass)
W: no module named posix (delayed, conditional import by iu)
W: no module named EasyDialogs (conditional import by getpass)
W: no module named PyQt4._qt (top-level import by PyQt4.QtCore)
W: no module named termios (top-level import by getpass)
W: no module named org (top-level import by copy)
W: no module named fcntl (top-level import by tempfile)
W: no module named readline (delayed, conditional import by cmd)
W: no module named win32wnet (delayed import by uuid)
W: no module named PyQt4._qt (top-level import by PyQt4.QtGui)
W: no module named win32api (delayed import by iu)
W: no module named netbios (delayed import by uuid)
W: no module named _emx_link (conditional import by os)
W: no module named posix (conditional import by os)
W: no module named org (top-level import by pickle)
W: no module named rourl2path (conditional import by urllib)
W: no module named PyQt4._qt (top-level import by PyQt4)



Отредактировано (Март 16, 2010 15:38:38)

Офлайн

#6 Март 16, 2010 21:58:03

jartasa
От:
Зарегистрирован: 2009-09-20
Сообщения: 78
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

pyinstaller лучше в 10 раз, да и ничего в нём сложного нет
makespec.py -X -F -w C:\py\pyfie.py
build.py D:\pathtopyinstaller\dist\pyfile.spec



Офлайн

#7 Март 17, 2010 05:44:04

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

jartasa
pyinstaller лучше в 10 раз, да и ничего в нём сложного нет
makespec.py -X -F -w C:\py\pyfie.py
build.py D:\pathtopyinstaller\dist\pyfile.spec
Какое точное замечание на тему разговора.



Офлайн

#8 Март 26, 2010 20:00:16

topazz
От:
Зарегистрирован: 2008-09-12
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

По теме.. Научите что не так..

Использую pyinstaller

C:\Python26\python.exe C:\py26win\Makespec.py -F -X -w -d --icon=icon.ico --out=D:\Coding\toexe D:\Coding\toexe\exe.py
C:\Python26\python.exe C:\py26win\Build.py D:\Coding\toexe\exe.spec
Exe собирается но иконку упорно не хочет вставляться.
Приходится брать в руки Recource Hacker и заменять иконку в exe в ручную.



Офлайн

#9 Март 26, 2010 23:07:34

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

topazz
не важно как ты это сделал , главное что сделал

Офлайн

#10 Май 23, 2010 02:07:19

diam123
От:
Зарегистрирован: 2008-10-23
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с pycurl и py2exe

topazz
Exe собирается но иконку упорно не хочет вставляться.
Я для себя немного модифицировал mcgui.py
Правда после того как поставил upx то им пакуется постоянно , чет не совсем так как нужно подкорректировал))), но кагбэ иконку там можно указать…
#!/usr/bin/python

# Tkinter interface to the McMillan installer
# (c) 2003 Alan James Salmoni - yes, all this bad code is all mine!!!
# released under the MIT license

import os, os.path
from Tkinter import *
import tkFileDialog
import FileDialog

class McGUI:
def __init__(self):
root = Tk()
self.iin=None
fr1 = Frame(root)
fr1["width"] = 200
fr1["height"] = 100
fr1.pack(side="top")
fr2 = Frame(root)
fr2["width"] = 200
fr2["height"] = 300
fr2["borderwidth"] = 2
fr2["relief"] = "ridge"
fr2.pack()
fr4 = Frame(root)
fr4["width"]=200
fr4["height"]=100
fr4.pack(side="bottom")
getFileButton = Button(fr1)
getFileButton["text"] = "Script..."
getFileButton.bind("<Button>",self.GetFile)
getFileButton.pack(side="left")
self.filein = Entry(fr1)
self.filein.pack(side="right")
self.filetypecheck = Checkbutton(fr2)
self.filetypecheck["text"] = "One File Package "
self.filetype = IntVar()
self.filetypecheck["variable"] = self.filetype
self.filetypecheck.pack()
self.tkcheck = Checkbutton(fr2)
self.tkcheck["text"] = "Include Tcl/Tk "
self.tk = IntVar()
self.tkcheck["variable"] = self.tk
self.tkcheck.pack()
self.asciicheck = Checkbutton(fr2)
self.asciicheck["text"] = "Do NOT include decodings"
self.ascii = IntVar()
self.asciicheck["variable"] = self.ascii
self.asciicheck.pack()

self.useupx = Checkbutton(fr2)
self.useupx["text"] = "Use UPX"
self.upx = IntVar()
self.useupx["variable"] = self.upx
self.useupx.pack()

self.debugcheck = Checkbutton(fr2)
self.debugcheck["text"] = "Use debug versions "
self.debug = IntVar()
self.debugcheck["variable"] = self.debug
self.debugcheck.pack()
self.noconsolecheck = Checkbutton(fr2)
self.noconsolecheck["text"] = "No console (Windows only)"
self.noconsole = IntVar()
self.noconsolecheck["variable"] = self.noconsole
self.noconsolecheck.pack()
getIconButton = Button(fr2)
getIconButton["text"] = "Icon..."
getIconButton.bind("<Button>",self.GetIcon)
getIconButton.pack(side="left")
self.iconin = Entry(fr2)
self.iconin.pack(side="right")
okaybutton = Button(fr4)
okaybutton["text"] = "Okay "
okaybutton.bind("<Button>",self.makePackage)
okaybutton.pack(side="left")
cancelbutton = Button(fr4)
cancelbutton["text"] = "Cancel"
cancelbutton.bind("<Button>",self.killapp)
cancelbutton.pack(side="right")
self.fin = ''
self.fout = ''
root.mainloop()

def killapp(self, event):
sys.exit(0)

def makePackage(self, event):
commands = 'Makespec.py '
if (self.filetype.get() == 1):
commands = commands + '--onefile '
if (self.tk.get() == 1):
commands = commands + '--tk '
if (self.ascii.get() == 1):
commands = commands + '--ascii '
if (self.debug.get() == 1):
commands = commands + '--debug '
if (self.noconsole.get() == 1):
commands = commands + '--noconsole '
if (self.upx.get() == 1):
commands = commands + '--upx '
if self.iin:
commands = commands +"--icon=" + self.iin + " "
commands = commands + self.fin
x = os.path.split(self.fin)
y = os.path.splitext(x[1])
os.system(commands)
commands = 'Build.py '+str(y[0])+os.sep+str(y[0])+'.spec'
os.system(commands)
sys.exit(0)

def GetFile(self, event):
self.fin = tkFileDialog.askopenfilename()
self.filein.insert(0,self.fin)

def GetIcon(self, event):
self.iin = tkFileDialog.askopenfilename()
self.iconin.insert(0,self.iin)

if __name__ == "__main__":
app = McGUI()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version