Topic: [pygame]Init  (Letto 2460 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline zed85

  • python unicellularis
  • *
  • Post: 20
  • Punti reputazione: 0
    • Mostra profilo
[pygame]Init
« il: Agosto 24, 2008, 10:59 »
Salve vorrei imparare pygame e per iniziare ho preso questo esempio, solo che mi da il seguente errore.

# -*- coding: iso-8859-1 -*-
import pygame
import sys
#from pygame.locals import *
pygame.init()
 
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
 
screen = pygame.display.set_mode(size)
ball = pygame.image.load("ball.bmp")
ballrect = ball.get_rect()

while 1:
  for event in pygame.event.get():
    if event.type == pygame.QUIT: sys.exit()

  ballrect = ballrect.move(speed)
  if ballrect.left < 0 or ballrect.right > width:
    speed[0] = -speed[0]
  if ballrect.top < 0 or ballrect.bottom > height:
    speed[1] = -speed[1]
  screen.fill(black)
  screen.blit(ball, ballrect)
  pygame.display.flip()

Traceback (most recent call last):
  File "pygame.py", line 2, in <module>
    import pygame
  File "C:\Python25\pygame.py", line 5, in <module>
    pygame.init()
AttributeError: 'module' object has no attribute 'init'

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: [pygame]Init
« Risposta #1 il: Agosto 24, 2008, 11:03 »
Ciao!

Come hai installato Pygame?

E' strano che ti dia quell'errore...!!

Offline zed85

  • python unicellularis
  • *
  • Post: 20
  • Punti reputazione: 0
    • Mostra profilo
Re: [pygame]Init
« Risposta #2 il: Agosto 24, 2008, 11:10 »
A installare l'avevo installato bene è che "fantasiosamente " avevo chiamato questo script di prova proprio pymage.py :P e quindi giustamente non trovava nulla . Ora funziona :)

Grazie cmq spero di poter essere d'aiuto appena prendo un po pratica .

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: [pygame]Init
« Risposta #3 il: Agosto 24, 2008, 11:37 »
Hai ragione!

ahauhuhuhh :)

Offline Balzy

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: [pygame]Init
« Risposta #4 il: Novembre 19, 2008, 21:02 »
XD successo anche a me

Offline xFra32

  • python neanderthalensis
  • ****
  • Post: 481
  • Punti reputazione: 1
    • Mostra profilo
    • Utopico
Re: [pygame]Init
« Risposta #5 il: Novembre 19, 2008, 21:12 »
pygame è una libreria fantastica.. anch'io ho iniziato da un mese.. se hai problemi chiedi che siamo qui apposta, cosi svegliamo un po sto blog che sembra fantasma.

Offline Alex_wintergarden

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re:[pygame]Init
« Risposta #6 il: Febbraio 27, 2020, 14:36 »
Buongiorno mi unisco anche io al topic con un problema simile;

scrivendo "import pygame" e avviando il programma mi esce il seguente errore:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import pygame
  File "/Users/alessandrodecarli/Documents/pygame.py", line 3, in <module>
    pygame.init()
AttributeError: module 'pygame' has no attribute 'init'

Non riesco a capire dove risieda l'errore

Il Python è aggiornato alla 3.8 il pip che ho usato per installarlo è il più recente e la versione di pygame è la 1.9.6

grazie mille per le risposte :)
« Ultima modifica: Febbraio 27, 2020, 14:40 da Alex_wintergarden »

Offline nuzzopippo

  • python erectus
  • ***
  • Post: 231
  • Punti reputazione: 0
    • Mostra profilo
Re:[pygame]Init
« Risposta #7 il: Febbraio 28, 2020, 05:52 »
#Alex_wintergarden, stai scherzando?
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import pygame
  File "/Users/alessandrodecarli/Documents/pygame.py", line 3, in <module>
    pygame.init()....

Esattamente tre post prima c'è scritto :
Citazione
A installare l'avevo installato bene è che "fantasiosamente " avevo chiamato questo script di prova proprio pymage.py :P e quindi giustamente non trovava nulla . Ora funziona

che è la soluzione : se chiami un Tuo modulo come la libreria che vuoi usare te li cerchi i malfunzionamenti, come fa l'interprete a capire cosa vuoi usare?

Detto questo, ti piace il necroposting? Vabbeh ma almeno leggili per intero i post.

Ciao

Offline Alex_wintergarden

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re:[pygame]Init
« Risposta #8 il: Marzo 01, 2020, 22:37 »
Mi scuso davvero per la mia ignoranza con tutti quelli che stanno leggendo questo topic,
ma è da pochi mesi che ho iniziato a programmare con python e faccio ancora un po' fatica a capire bene la tipologia di problemi e i termini specifici.

Volevo chiedervi, ora che ho capito dove risiede l'errore, come io possa sistemare il programma ed estinguere il problema

Il file che sto usando si chiama flappy bird.py quindi non credo che sia il nome del file ad influire

scusate ancora
« Ultima modifica: Marzo 01, 2020, 22:44 da Alex_wintergarden »

Offline nuzzopippo

  • python erectus
  • ***
  • Post: 231
  • Punti reputazione: 0
    • Mostra profilo
Re:[pygame]Init
« Risposta #9 il: Marzo 02, 2020, 08:19 »
Allora, Tu scusa me se ho risposto un po' "duro" @Alex_wintergarden, essendo un post del 2008 e con un trace che apparentemente era pari pari nella casistica risolta ho pensato ad una presa in giro.

Non conosco pygame, mai utilizzato, ma proverò ad accompagnarTi, non fosse altro per scontare quella "durezza".

Allora : "/Users/alessandrodecarli/Documents/pygame.py" non è il Tuo file di codice?, è forse il modulo?

Se la risposta è si la domanda seguente è : come hai installato pygame?

Da parte mia, giusto per vedere come funziona ho installato una libreria in un virtual envirnment (giusto per non sporcare il sistema, e fatto un test che non ha avuto acun problema, ti posto l'output della sessione fatta
NzP:~$ python3 -m venv py_gvenv
NzP:~$ cd py_gvenv
NzP:~$ . bin/activate
(py_gvenv) NzP:~$ pip install pygame
Collecting pygame
  Downloading https://files.pythonhosted.org/packages/8e/24/ede6428359f913ed9cd1643dd5533aefeb5a2699cc95bea089de50ead586/pygame-1.9.6-cp36-cp36m-manylinux1_x86_64.whl (11.4MB)
    100% |████████████████████████████████| 11.4MB 154kB/s
Installing collected packages: pygame
Successfully installed pygame-1.9.6
(py_gvenv) NzP:~$ pwd
/home/nuzzopippo/py_workspace/py_g/py_gvenv
(py_gvenv) NzP:~$ cd ..
(py_gvenv) NzP:~$ mkdir src
(py_gvenv) NzP:~$ cd src
(py_gvenv) NzP:~$ nano prova.py
(py_gvenv) NzP:~$ python prova.py
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
Premere invio per continuare
(py_gvenv) NzP:~$ cat prova.py
from pygame import *

init()

schermo=display.set_mode((640,480))
display.set_caption('Coding Creativo')

input('Premere invio per continuare')
(py_gvenv) NzP:~$

Se l'output Ti appare strano è solo perché uso Linux e non windows, lo ho postato giusto per mostrarTi un semplice test in una metodologia d'uso che funziona e magari puoi testare a Tua volta.

Seconda domanda : come lanci il Tuo script?
Chiedo ciò perché il nome "flappy bird.py" ha uno spazio intermedio e la cosa potrebbe dare dei problemi in alcune modalità.

Infine, terza domanda : nella Tua condizione attuale, aprendo una shell python e dando "import pygame" cosa succede?
Se non succeed niente Ok, se da errore posta l'output
« Ultima modifica: Marzo 02, 2020, 08:23 da nuzzopippo »

Offline Alex_wintergarden

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
Re:[pygame]Init
« Risposta #10 il: Marzo 02, 2020, 10:46 »
Grazie mille davvero per l'aiuto,

io pygame l'ho installato con il commando: pip install pygame
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Requirement already satisfied: pygame in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (1.9.6)Io il pip lo avevo
(output diverso perché io l'avevo già installato)

aggiornato  e così anche python alla versione 3.8

Il problema è che questo errore:

Traceback (most recent call last):
  File "/Users/alessandrodecarli/Desktop/immaginiflappy/flappy bird.py", line 2, in <module>
    import pygame
  File "/Users/alessandrodecarli/Documents/pygame.py", line 3, in <module>
    pygame.init()
AttributeError: partially initialized module 'pygame' has no attribute 'init' (most likely due to a circular import)

si ripete in diversi programmi, ho provato a creare script nuovi con nomi diversi ma sussiste sempre questo errore.

Anche se nella shell scrivo solo il comando import pygame mi restituisce il seguente problema:

>>>import pygame
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import pygame
  File "/Users/alessandrodecarli/Documents/pygame.py", line 3, in <module>
    pygame.init()
AttributeError: partially initialized module 'pygame' has no attribute 'init' (most likely due to a circular import)

Io al momento sto usando OS e non so se il problema possa risiedere nel sistema operativo ma ne dubito.
A questo punto mi sorge il dubbio che il problema sia dove ho salvato pygame all'interno del mio computer.

Inoltre mi son dimenticato di dire che il programma appena fatto funzionava benissimo, l'errore è capitato all'improvviso un giorno in cui ho avviato lo script per l'ennesima volta.

Grazie mille davvero per l'aiuto

Offline nuzzopippo

  • python erectus
  • ***
  • Post: 231
  • Punti reputazione: 0
    • Mostra profilo
Re:[pygame]Init
« Risposta #11 il: Marzo 02, 2020, 11:53 »
Con OS intendi il macOS/OSX?
Se è così, è un altro aspetto che non conosco.

Comunque, a mia volta ritengo improbabile sia una "faccenda" prettamente inerente al sistema operativo, anche se il fatto che i Tuoi script prima funzionavano ed all'improvviso non più possa far anche pensare a qualche libreria venuta meno.

Ciò che veramente mi da da pensare è questo :
Citazione
AttributeError: partially initialized module 'pygame' has no attribute 'init' (most likely due to a circular import)
che mi sembra voglia indicare l'utilizzo di due moduli tra loro interdipendenti (uno chiama l'altro e viceversa) ... non ho molta esperienza in merito ma non è che hai installato pygame a livello di sistema tanto per la versione 2.x quanto per la versione 3.x di pthon?
Ho il dubbio possa esservi una interferenza.

[Edit} Inserita correzione sotto a scanso di equivoci
Ti suggerirei una verifica banale, prima di qualsiasi altro "tentativo" : sai creare un virtual environment come ho fatto io nel precedente post? Creare uno lo attivi ed installaci pygame,(questo no poi lo attivi), ti sposti nella direttrice di uno degli script che non Ti funziona e provi a lanciarlo da li, e vedi se funziona ... meglio ancora, forse, ti scrivi uno script minimale (per evitare ulteriori import) e ne verifichi il funzionamento tanto in ambiente ordinario quanto in un virtual-environment, ciò per vedere con certezza se è un problema dovuto proprio alla attuale configurazione generale del sistema.

Ti leggerò nel pomeriggio, fai sapere.

Ovvio che se utenti più addentro alla materia leggono sono invitati ad intervenire.
« Ultima modifica: Marzo 02, 2020, 12:06 da nuzzopippo »

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.031
  • Punti reputazione: 9
    • Mostra profilo
Re:[pygame]Init
« Risposta #12 il: Marzo 02, 2020, 21:47 »
scusate ma... alla fine della fiera stiamo ancora facendo name shadowing o sbaglio?
E chiama quello script "pizzamargherita.py", no?

Offline nuzzopippo

  • python erectus
  • ***
  • Post: 231
  • Punti reputazione: 0
    • Mostra profilo
Re:[pygame]Init
« Risposta #13 il: Marzo 03, 2020, 08:08 »
scusate ma... alla fine della fiera stiamo ancora facendo name shadowing o sbaglio?
E chiama quello script "pizzamargherita.py", no?

Si, credo proprio Tu abbia ragione, ieri sera l'ho dedicata ad esaminarmi l'installazione di pygame da me fatta nel venv ed ho verificato che è un package, non esiste nessun modulo pygame.py, quindi il problema che mi ero posto sul riferimento circolare, derivante dal terzo post dello OP, non sussiste.

Malgrado lo OP abbia indicato, nel suo secondo post che il file problematico si chiamasse "flappy bird.py" e non pygame.py evidentemente nel codice interessato vi è un qualche import di tale modulo (tornando così allo stato iniziale risolto già in origine) e l'import da shell provato dallo OP deve essere stato eseguito posizionato nella directory "Documents" (cosa di per se sospetta ma a cui lo OP non aveva risposto alla domanda di cosa fosse quel pygame.py)
... quindi l'effettiva soluzione sembra proprio rinominare in altro modo pygame.py e correggere gli eventuali import negli altri script che vi riferiscono.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.031
  • Punti reputazione: 9
    • Mostra profilo
Re:[pygame]Init
« Risposta #14 il: Marzo 03, 2020, 10:27 »
Guarda, non è che ci sia da fare troppi ragionamenti... La macchina dell'OP io non ce l'ho davanti e per quello che ne so potrebbe anche essere infestata dai demoni, però mi chiedo in quale dimensione parallela una installazione di Pygame potrebbe finire in "Users/alessandrodecarli/Documents/pygame.py"... Quindi ipotizzo che quel "pygame.py" sia un modulo fatto da lui e nominato nel peggior modo possibile. Ma davvero, è solo un'ipotesi e non mi stupirei se le cose stessero in modo ancora più pazzescamente ingarbugliato di così.

Ora, solo a guardare quello stacktrace si finisce in un giallo di Agatha Christie...
1) per qualche ragione lo script entry-point si chiama davvero "flappy bird.py" con lo spazio in mezzo... cioè, te lo immagini cosa succede se mai volesse importarlo da qualche altra parte? Prova a scrivere import flappy bird e dimmi che cosa succede.
2) per qualche ragione ancora più intricata, apparentemente "/Users/alessandrodecarli/Documents/" è nella sys.path, visto che riesce a importare da lì, essendo l'entry-point in una directory completamente diversa. Ora, come ci sarà finita quella directory nella sys.path? Gliela avrà passata dalla shell? Sarà un PYTHONPATH personalizzato? Il mistero si infittisce... boh.

Detto francamente questo mi sembra il classico caso in cui vedi la gente che si ostina a dare martellate alla cieca sulla tastiera invece di procedere sistematicamente. Può darsi che si riesca a risolvere in qualche modo il problema specifico dell'OP, ma onestamente il mio consiglio sarebbe di dare alle fiamme quel computer e ricominciare daccapo, dimenticandosi completamente pygame e flappy birds e quant'altro per almeno un annetto buono, seguire un buon libro pagina per pagina e investire del tempo a imparare Python, prima di usare Python per qualcosa.
Ma ovviamente questo è sempre il consiglio che do, e questo è sempre il consiglio che non viene ascoltato.

Per quanto riguarda il name shadowing nello specifico, aggiungo una cosa.
Il name shadowing è un problema complesso, talvolta anche per chi ha molta esperienza di Python. Dipende da come funziona il meccanismo di import, e notoriamente il meccanismo di import è difficile da capire. Molto difficile. La sys.path si costruisce a runtime, e dentro possono finirci cose molto diverse a seconda di molte regole diverse, non sempre immediate da controllare.
Ora, onestamente non saprei dire se il problema dell'OP è un problema di name shadowing... Troverei difficile capirlo sulla mia macchina, nel mio ambiente di lavoro... figurarsi su una configurazione che non conosco. Ma soprattutto per un principiante, non è che ci sia poi tanto da spaccarsi la testa a capire queste cose. Basta seguire la semplice regola di metterci un po' di fantasia e non nominare i propri moduli con nomi che sono già notoriamente utilizzati. Se fai uno script di calcoli matematici NON lo chiami "math.py". Se fai un esercizio con i numeri casuali NON lo chiami "random.py". Se fai un giochino (e hai installato pygame) NON lo chiami "pygame.py". Poi non è detto che faresti per forza name shadowing a chiamarli così, eh? Appunto, dipende da mille fattori. Ma intanto chiama i tuoi script in modo più sensato, e ti togli comunque il pensiero.