Arama butonu
Bu konudaki kullanıcılar: 1 misafir
12
Cevap
1878
Tıklama
0
Öne Çıkarma
Pyinstaller exe çevirme problemi
D
6 yıl
Yarbay

Buyur eğer hala bulamadıysan exe hali ve py dosyası.En başta yazısekil diye tanımlamışsın daha sonra while döngüsünde tekrar tanımlamışsın.Ama üsttekini kullanmamışsın bunu neden yaptığını anlamadım.Ama çalışmamasındaki problem kullanmamak değil yukarda fontu none diye tanımlamışsın.None diye tanımlayınca freesanbold diye bir fontu otomatik olarak seçiyor.Ve bu font ya bozuk yada bilgisayarda bulunmuyor bu yüzden font hata veriyor(Sanırım herkezde veriyor bu hatayı).None yerine arial,comic sans ms gibi bilgisayarda bulunan bir fontu yaz.Ve birde import pygame olarak düzenledim en üstü
Exeyi ise py dosyasını attıgın klasörde shift+sağ click>komut penceresini burada aç > 'pyinstaller dosyaadı.py' olarak yaptım

Link


Bu mesaja 1 cevap geldi.
A
6 yıl
Onbaşı
Konu Sahibi

Hocam emeğinize sağlık çok teşekkür ediyorum.

Bir de yorum satırlarına bakınca da duygulandım.Sizin gibi iyilik sever insanlar oldukça bu Dünya dönecektir :))




Bu mesajda bahsedilenler: @Doubleimp
A
7 yıl
Onbaşı
Konu Sahibi

Herkese merhaba sanırım bir python dosyasını exe haline getirmenin en kolay yolu pyinstaller kullanmak.Ben de bunu kullanrak pygame,random,time modüllerinin olduğu dosyamı exe'ye çevirdim.Bir sorunla karşılaştım.Program açılıyor ancak işlemiyor.Pygame yükleniyor fakat diğer modüllerin yüklenip yüklenmediğinden emin değilim.Bana bu konuda yardımcı olabilirseniz detaylandırmak isterim.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
7 yıl
Yarbay

3 sene evvel orta büyüklükte (500 satır) Python skriptini py2exe modülü ile exe ye cevirdik ve bir hosting firmasının windows sunucusunda exe sorunsuz çalıştı.



G
6 yıl
Binbaşı

pyinstaller'da yazdığınız kodu exe'ye çevirirken kodunuzu kısaca bir gözden geçirin, eğer import ettiğiniz ama o kullanmadığınız bir kütüphane varsa silin. yakalanamayan hatalardan biri bu oluyor genellikle.


Bu mesaja 1 cevap geldi.
A
6 yıl
Onbaşı
Konu Sahibi

hocam kullandığım kütüphaneler pygame,random ve time kütüphaneleri.Bunlar için ek bir işlem yapmam gerekli midir?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @gel pc pc
G
6 yıl
Binbaşı

quote:

Orijinalden alıntı: aligolge

hocam kullandığım kütüphaneler pygame,random ve time kütüphaneleri.Bunlar için ek bir işlem yapmam gerekli midir?
import edip kod satırlarında kullanmışsanız sorun olmaz ama mesela from pygame import * yapmışsanız dediğim olabilir. onun yerine "from pygame import (sadece kullandığınız class'lar) olarak bi düzenleyin isterseniz. ben arayüz tasarlarken from pyqt5 import * yaptığımda olmuştu böyle bir şey. düzeltip "from pyqt5 import QtWidgets,QtApplication" vs vs sadece kullandıklarımı eklemiştim.

onun dışında pygame hakkında çok bilgim olmadığı için yardım edemeyecem maalesef. ama yukarı da dediklerimi tam anlayamadıysanız kodları gönderin sizin yerine düzenlemeler yaparım çok uzun değilse.


Bu mesaja 2 cevap geldi.
A
6 yıl
Onbaşı
Konu Sahibi

quote:

Orijinalden alıntı: gel pc pc

import edip kod satırlarında kullanmışsanız sorun olmaz ama mesela from pygame import * yapmışsanız dediğim olabilir. onun yerine "from pygame import (sadece kullandığınız class'lar) olarak bi düzenleyin isterseniz. ben arayüz tasarlarken from pyqt5 import * yaptığımda olmuştu böyle bir şey. düzeltip "from pyqt5 import QtWidgets,QtApplication" vs vs sadece kullandıklarımı eklemiştim.

onun dışında pygame hakkında çok bilgim olmadığı için yardım edemeyecem maalesef. ama yukarı da dediklerimi tam anlayamadıysanız kodları gönderin sizin yerine düzenlemeler yaparım çok uzun değilse.

Alıntıları Göster
dediğinizi şimdi anladım deneyeceğim, alakanız için de teşekkür ederim.



A
6 yıl
Onbaşı
Konu Sahibi

hocam pm gönderim, geldi mi bilmiyorum ama aynı problem devam etti.Satırlar şu şekilde:

from pygame import draw,init,display,font,event, quit
from random import randint, random,randrange
from pygame.locals import KEYDOWN, QUIT
from time import sleep
init()
pencerem=display.set_mode((800,600))
WHITE=(255,255,255)
BLACK=(0,0,0)
GRAY=(200,200,200)
RED=(255,0,0)
GREEN=(0,255,0)
DARKRED=(255,0,200)
knmx=60
knmy=60
sagx=20
asagiy=20
haritasol=False
haritasag=False
haritayuk=False
haritaasg=False
yembyk=10
saga=True
sola=False
asg=False
yuk=False
hiz=20
uyku=0.01
kuyruk=[]
gercekhiz=0 #ters orantı
yemx=90
yemy=70
yazisekil=font.SysFont(None,40)
degdi=False
coktandegdi=False
def yon(x):
if int(x)==273 and (saga or sola)==True and (yuk and asg)==False:
a=True
b=False
c=False
d=False
return a,b,c,d
elif int(x)==274 and (saga or sola)==True and (yuk and asg)==False:
a=False
b=False
c=False
d=True
return a,b,c,d
elif int(x)==275 and (saga and sola)==False and (yuk or asg)==True:
a=False
b=True
c=False
d=False
return a,b,c,d
elif int(x)==276 and (saga and sola)==False and (yuk or asg)==True:
a=False
b=False
c=True
d=False
return a,b,c,d
else:
return yuk,saga,sola,asg
def hareket():
global n,m
if yuk==True:
for i in range(1):
n=knmy-hiz
m=knmx
sleep(uyku)
return n,m
elif asg==True:
for i in range(1):
n=knmy+hiz
m=knmx
sleep(uyku)
return n,m
elif sola==True:
for i in range(1):
m=knmx-hiz
n=knmy
sleep(uyku)
return n,m
elif saga==True:
for i in range(1):
m=knmx+hiz
n=knmy
sleep(uyku)
return n,m
while True:
skor=len(kuyruk)+1
pencerem.fill(BLACK)
myfont=font.SysFont("Comic Sans MS",30)
label=myfont.render("SKOR:"+str(skor),1,WHITE)
pencerem.blit(label,(0,0))
for index in range(len(kuyruk)-1,0,-1):
a=kuyruk[index-1].x
b=kuyruk[index-1].y
kuyruk[index].x=a
kuyruk[index].y=b
draw.rect(pencerem,GRAY,(kuyruk[index].x,kuyruk[index].y,kuyruk[index].width,kuyruk[index].height),2)
for index in range(len(kuyruk)-1,0,-1):
if ((((bas.x-kuyruk[index].x)**2)+((bas.y-kuyruk[index].y)**2))**(1/2))<5:
degdi=True
if degdi:
coktandegdi=True
if coktandegdi:
knmx=400
knmy=300
del kuyruk[:]


for i in range(len(kuyruk)):
ix=kuyruk[i].x
ye=kuyruk[i].y
if abs((yems.x)-ix)<15 and abs((yems.y)-ye)<15:
yems.x=kuyruk[-1].x
yems.y=kuyruk[-1].y
if len(kuyruk) >0:
a=bas.x
b=bas.y
kuyruk[0].x=a
kuyruk[0].y=b
draw.rect(pencerem,GRAY,(kuyruk[0].x,kuyruk[0].y,kuyruk[0].width,kuyruk[0].height),2)
bas=draw.rect(pencerem,GRAY,(knmx,knmy,sagx,asagiy),2)
yems=draw.circle(pencerem,RED,(yemx,yemy),10,2)
if ((((bas.x-yems.x)**2)+((bas.y-yems.y)**2))**(1/2))<10:
yenikuyruk=draw.rect(pencerem,GRAY,(knmx,knmy,sagx,asagiy),2)
kuyruk.append(yenikuyruk)
potx=randrange(1,79,2)
poty=randrange(1,59,2)
yemx=potx*10
yemy=poty*10
for olay in event.get():
if olay.type==QUIT:
quit()
elif olay.type==KEYDOWN:
kolay=olay.key
yuk,saga,sola,asg=yon(kolay)
sleep(0.1)
knmy,knmx=hareket()
if knmx>790:
knmx=0
elif knmx<0:
knmx=800
elif knmy<0:
knmy=600
elif knmy>590:
knmy=0
coktandegdi=False

display.flip()





Bu mesajda bahsedilenler: @gel pc pc
G
6 yıl
Binbaşı

mesajınız gelmedi yeni fırsatım oldu kodları incelemeye. dediğim gibi daha önce hiç pygame çalışmadığım için kodları tam olarak anlayamadım ve oyun algoritmalarına çok uzağım ancak genel hatlarıyla incelediğim ve klasik algoritmasına bakınca ufak bir kaç eksiklik gördüm sanırım. öncelikle son satırlarda tam olarak neden olduğunu anlayamadığım bir while bloğu var. sonsuz döngü olması için mi koydunuz onu? onun yerine muhtemelen pygame'de de if __name__ == "__main__": şeklinde başlayarak yazmanız gerekecek. onu bir kontrol edin düzeltmeniz gerekebilir.

ayrıca github'da bir kaç kişinin snake kodunu inceledim üç aşağı beş yukarı sizinkine benzer yazılmış. onlarınkini bende exe'ye çevirdim ve açılmadı exe halleri ama google'da çok kısa "pygame exe not opening" gibi basit bir aramayla çokça sonuç çıkıyor özellikle stackoverlow'da sizinkine benzer sorun yaşayanlar var çözümü orada bulabilirsiniz.

edit: şu arkadaş python gurusu sayılabilir, onun yaptığı .py to .exe çözümünü izler kendin denersen halledebilirsin





< Bu mesaj bu kişi tarafından değiştirildi gel pc pc -- 3 Şubat 2019; 1:16:18 >
Bu mesaja 2 cevap geldi.
A
6 yıl
Onbaşı
Konu Sahibi

Hocam ben bu işi hobi olarak yapıyorum.Oyunları tasarlayıp daha sonra yapay zeka üzerinde test edeceğim.While döngüsünü yılanın konumunun her döngüde değişmesi için yapıyorum.Yani ben profesyonel değilim, tıp okuyorum sağdan soldan öğrendiklerimle girdim bu işe :D algoritma yazmayı seviyorum yani öyle özetleyebilirim.O yüzden if__name=="__main__" gibi bir oluşumun neden kullanılması gerektiğini ve ne işe yaradığını bilmiyorum.Hatta nesne tabanlı programlamayı bile henüz öğrendiğim için kodumda hiç sınıf yok fark ettiyseniz.O yüzden mazur görün...
Bıraktığınız kaynak ve çözüm yolları için çok teşekkür ederim :)




Bu mesajda bahsedilenler: @gel pc pc
A
6 yıl
Onbaşı
Konu Sahibi

Konu hala güncel şöyle bir ekleme yapabiliyorum,tekrardan uzun soluklu bir araştırma yaptım.
Bildiğiniz üzere error sonucu program hızlıca kapanıyor bu nedenle sorunu yakalamam çok uzun sürdü.Yaklaşık 20 defa screenshot aldım.Evet sonunda yakaladım her ne kadar amelece de olsa :)
Sanırım sorun SysFont fonksiyonuyla alakalı.Ama neden problem oldu bilmiyorum.Buyrun hata mesajı ve python'da kullandığım hatayla alakalı satır.

yazisekil=SysFont(None,40)

< Resime gitmek için tıklayın >



A
6 yıl
Onbaşı
Konu Sahibi

Hocam telefon numaramı başka bir dhforum hesabında kullandığım için pm atamıyormuşum.Kusura bakmayın o yüzden buradan cevap vermek zorunda kaldım.

Ben Anaconda ya da Pycharm kullanmadım.Sırf küçük sorunlar çıkartıyorlar ve bana kompleks geldiği için.
Python'un kendi default IDLE kullanıyorum.
Sorun sanırım ekrana yazı yazdırdığım kodlarda python dışında tanımlanması zor olabilir belki ondandır.Kodları buna uygun olarak düzenleyip tekrar deneyeceğim.
Hocam tekrardan alakanız için çok teşekkür ediyorum.




Bu mesajda bahsedilenler: @gel pc pc
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.