2012-07-16 16 views
6

Qualcosa che probabilmente non dovrebbe causarmi così tanti problemi, lo è.Installare Python Imaging Library (PIL) su Ubuntu

Sto provando ad installare PIL sul mio server Ubuntu. Sta installando bene. Tuttavia, ogni volta che provo ad aggiornare il database per aggiungere il campo dell'immagine, viene visualizzato il seguente errore:

Errore: uno o più modelli non convalidati: product.product: "image": per utilizzare ImageFields, è necessario installare la libreria di imaging Python. Scaricalo allo http://www.pythonware.com/products/pil/.

Ho appena realizzato che sono stato registrato come mio utente. Devo essere registrato come root per installarlo? Lo sto facendo su un VPS, non su una macchina locale.

Ho provato un sacco di tutorial sul Web e non sono arrivato affatto.

+0

È questo 'ImageField' di Django? –

+1

Sembra improbabile che tu abbia i diritti per installare i moduli nei pacchetti del sito di sistema se non hai effettuato il login come root. Se non ti è permesso, potresti voler configurare un virtualenv e andare da lì –

+0

Grazie. Ho installato un virtualenv per il mio sito. Inizialmente l'ho installato all'interno del virtualenv (comunque penso che sia installato sul sistema principale). Come potrei fare per installarlo su virtualenv? – JDavies

risposta

21

Ho dovuto installare python-dev quindi installare PIL nel mio virtualenv.

Tutto funziona ora.

Grazie per il vostro aiuto! :)

+0

e, per prima cosa, apt-get install libjpeg-dev libpng-dev per ottenere il supporto jpeg – PhoebeB

4

Se non siete root, quindi immettendo il seguente comando dovrebbe installare python-imaging:

sudo apt-get install python-imaging 

Oppure (se sei root), il seguente comando (senza sudo) verrà installato python-imaging

apt-get install python-imaging 
+0

Grazie per le vostre risposte. Ho provato entrambi questi comandi e questo è il messaggio che torno: python-imaging è già la versione più recente. 0 aggiornato, 0 appena installato, 0 da rimuovere e 33 non aggiornato. – JDavies

+0

Ciò significa che nel sistema è già installato PIL; non è necessario installarlo più –

0

si dovrebbe idealmente utilizzare un virtualenv e pip install pil lì ... Se si ha accesso e si desidera utilizzare i pacchetti di larghezza di sistema, allora avete bisogno di elevare a root (sudo) per easy_install o pip insta ll.

Assicurarsi che il server (Django?) Venga riavviato in modo che possa raccogliere le nuove librerie. (L'interprete non sembra sempre raccogliere i moduli appena installati mentre è in esecuzione).

Problemi correlati