Forum >> Programmazione Python >> GUI >> Installzione fpdf2

Pagina: 1

Buonasera, per un progetto sto installando per delle prove il pacchetto fpdf2.
Il pacchetto , installato con pip, lo vedo :





Package Version

------------------------- --------

altgraph 0.17.4

certifi 2024.2.2

charset-normalizer 3.3.2

defusedxml 0.7.1

et-xmlfile 1.1.0

fonttools 4.50.0

fpdf2 2.7.8





Voprei un aiuto per capire come mai quando eseguo :




from fpdf import FPDF




mi viene risposto :





from fpdf2 import FPDF

ModuleNotFoundError: No module named 'fpdf2'


Premetto che ho provato ad importare sia fpdf che fpdf2 e il risultato è lo stesso


Grazie


--- Ultima modifica di trescon in data 2024-04-04 20:13:22 ---
------
Alberto
fpdf2 è un fork di fpdf, quando lo installi viene generato un modulo "fpdf" che è quello da importare per operare, considerando di installarlo in un virtusl rnvironment, nella cartella "xxx_venv/lib64/pythonx.xx/site-packages" verranno create DUE cartelle, una denominata "fpdf2-2.7.8.dist-info" che conterrà le informazioni generali sul pacchetto, l'altra denominata "fpdf" che conterrà i veri moduli da utilizzare.

Pertanto, anche se in se il pacchetto è identificato quale "fpdf2" per utilizzare la libreria a livello operativo bisognerà utilizzare "fpdf" quale modulo, fpdf2 NON lo è ... tale import è indicato chiaramente nel tutorial e negli esempi.
Un esempio di sessione in un mio venv che forse chiarirà meglio :
NzP:~$ source firme_v/bin/activate
(firme_v) NzP:~$ python -m pip list
Package                 Version
----------------------- -------
defusedxml              0.7.1
FindSystemFontsFilename 0.2.0
fontmeta                1.6.1
fonttools               4.47.2
fpdf2                   2.7.8
freetype-py             2.4.0
pillow                  10.2.0
pip                     22.0.2
setuptools              59.6.0
uharfbuzz               0.39.0
(firme_v) NzP:~$ python
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import fpdf2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'fpdf2'
>>> import fpdf
>>> fpdf.__version__
'2.7.8'
>>> from fpdf import FPDF
>>> quit()
(firme_v) NzP:~$
come puoi vedere, pur essendo il "package" identificato quale fpdf2 esso non è un modulo, il modulo è "fpdf" ed ha la stessa versione ("2.7.8") del package.

Ciao :)



--- Ultima modifica di nuzzopippo in data 2024-04-05 07:23:38 ---
Fatti non foste a viver come bruti...
fpdf2 è un fork di fpdf, quando lo installi viene generato un modulo "fpdf" che è quello da importare per operare, considerando di installarlo in un virtusl rnvironment, nella cartella "xxx_venv/lib64/pythonx.xx/site-packages" verranno create DUE cartelle, una denominata "fpdf2-2.7.8.dist-info" che conterrà le informazioni generali sul pacchetto, l'altra denominata "fpdf" che conterrà i veri moduli da utilizzare.

Pertanto, anche se in se il pacchetto è identificato quale "fpdf2" per utilizzare la libreria a livello operativo bisognerà utilizzare "fpdf" quale modulo, fpdf2 NON lo è ... tale import è indicato chiaramente nel tutorial e negli esempi.
Un esempio di sessione in un mio venv che forse chiarirà meglio :
NzP:~$ source firme_v/bin/activate
(firme_v) NzP:~$ python -m pip list
Package                 Version
----------------------- -------
defusedxml              0.7.1
FindSystemFontsFilename 0.2.0
fontmeta                1.6.1
fonttools               4.47.2
fpdf2                   2.7.8
freetype-py             2.4.0
pillow                  10.2.0
pip                     22.0.2
setuptools              59.6.0
uharfbuzz               0.39.0
(firme_v) NzP:~$ python
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import fpdf2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'fpdf2'
>>> import fpdf
>>> fpdf.__version__
'2.7.8'
>>> from fpdf import FPDF
>>> quit()
(firme_v) NzP:~$
come puoi vedere, pur essendo il "package" identificato quale fpdf2 esso non è un modulo, il modulo è "fpdf" ed ha la stessa versione ("2.7.8") del package.

Ciao :)



--- Ultima modifica di nuzzopippo in data 2024-04-05 07:23:38 ---
Ciao Nuzzopippo e grazie; io lo avevo immaginato perché cosi è riportato nelle documentazione ma perché io se in uno script importo la libreria fpdf ottengo l’errore che ho riportato ? Se io guardo i pacchetti installati vedo fpdp2 vers. 2.7.8. Installata …..allora perchè dell’errore ?

Grazie
------
Alberto
Ciao Nuzzopippo e grazie; io lo avevo immaginato perché cosi è riportato nelle documentazione ma perché io se in uno script importo la libreria fpdf ottengo l’errore che ho riportato ? Se io guardo i pacchetti installati vedo fpdp2 vers. 2.7.8. Installata …..allora perchè dell’errore ?

Vuoi dire che nell'ambiente python con i pacchetti che hai indicato nel primo post l'errore lo ottieni quando esegui

>>> from fpdf import FPDF

... se è così è molto strano, non dovrebbe succedere a meno che non sia stata in qualche modo corrotta l'installazione di fpdf2 o che Tu stia in un ambiente python diverso da quello che Ti da l'elenco di pacchetti esposto.

Suggerirei di provare, nell'ambiente che Ti da quell'elenco di pacchetti di aprire una sessione python da terminale e provare a fare l'import manualmente dal prompt, se non Ti da errori, avrai l'indicazione che il problema sorge nel contesto di esecuzione (ambiente python diverso), se invece avrai errori copia l'intera sessione, compreso il traceback, e postala come codice, come ho fatto io, indicando il contesto con cui operi (s.o., eventuali IDE, altre notizie significative) perché si possa valutare

... certo, non è detto che noi si possa riprodurre il Tuo problema, ma almeno si potrà cercare di ragionarci su.




Per altro, hai provato a crearti un venv "pulito", ad installarci li fpdf2 e provarne l'utilizzo in quel venv?




Fai sapere, ciao

Fatti non foste a viver come bruti...
Ciao Nuzzopippo e grazie; io lo avevo immaginato perché cosi è riportato nelle documentazione ma perché io se in uno script importo la libreria fpdf ottengo l’errore che ho riportato ? Se io guardo i pacchetti installati vedo fpdp2 vers. 2.7.8. Installata …..allora perchè dell’errore ?

Vuoi dire che nell'ambiente python con i pacchetti che hai indicato nel primo post l'errore lo ottieni quando esegui

>>> from fpdf import FPDF

... se è così è molto strano, non dovrebbe succedere a meno che non sia stata in qualche modo corrotta l'installazione di fpdf2 o che Tu stia in un ambiente python diverso da quello che Ti da l'elenco di pacchetti esposto.

Suggerirei di provare, nell'ambiente che Ti da quell'elenco di pacchetti di aprire una sessione python da terminale e provare a fare l'import manualmente dal prompt, se non Ti da errori, avrai l'indicazione che il problema sorge nel contesto di esecuzione (ambiente python diverso), se invece avrai errori copia l'intera sessione, compreso il traceback, e postala come codice, come ho fatto io, indicando il contesto con cui operi (s.o., eventuali IDE, altre notizie significative) perché si possa valutare

... certo, non è detto che noi si possa riprodurre il Tuo problema, ma almeno si potrà cercare di ragionarci su.




Per altro, hai provato a crearti un venv "pulito", ad installarci li fpdf2 e provarne l'utilizzo in quel venv?




Fai sapere, ciao


Allora.... io ho provato a eseguire il programmino dall'idle di python e da un altro programma (Geany) e funziona regolale......... la prova che non funzionava l'avevo fatta con Thonny.

Strano perchè io uso indifferentemente l'uno o l'altro e di solito non ho problemi...... sarei curioso di sapere perchè però succede questo; potrebbe capitarmi in altri contesti.

Se qualcuno ha qualche suggerimento....

Io nella cartella dove risiede il file di prova ho provato il comando "pip list" e laq libreria fpdf2 la vedo....... boh

Grazie



------
Alberto
Allora.... io ho provato a eseguire il programmino dall'idle di python e da un altro programma (Geany) e funziona regolale......... la prova che non funzionava l'avevo fatta con Thonny.
Allora, è certamente una questione di "ambiente" (venv, ovviamente) utilizzato, Thonny può essere configurato per utilizzare uno specifico interprete, tra quelli creati nel sistema, dando il comando "Strumenti => Opzioni" ed indicandone il path assoluto nella casella "Eseguibile Python" del tab "Interprete".




Per altro, quando aggiorni il sistema, forse, le impostazioni correnti di Thonny potrebbero non venire aggiornate, potresti provare a controllare.




Ciao

Fatti non foste a viver come bruti...


Pagina: 1



Esegui il login per scrivere una risposta.