Ho creato un motore di correzioni rapide (http://www.quickfixengine.org/) per uno dei miei compiti e anche costruito nel supporto python per questo. Sfortunatamente questo è un env multiutente e non ho accesso al percorso di installazione di oython. Quindi il comando make install prova a copiare i file e fallisce. Sono riuscito a commentare le due righe dove cerca di farlo e completare l'installazione. Dal momento che non riesco a mettere i file lì, dove posso mettere il file .so creato. E come faccio a far sapere a Python che è lì? Ho esaminato la documentazione di python.ord ma descrive solo il processo per le installazioni di setup.py. Inoltre ho provato a mettere il percorso per il file .so in sys.path, che non funzionava. Esistono anche documenti sull'anatomia di un pacchetto Python? Grazie.Come installare manualmente una libreria Python
risposta
Si suppone che la compilazione del pacchetto QuickFix non produca un file setup.py
, ma piuttosto compili solo i binding Python e si basi su make install
per metterli nella posizione appropriata.
In questo caso, una soluzione rapida e sporco è quello di compilare il sorgente QuickFix, individuare i moduli di estensione Python (hai indicato sul sistema queste estremità con un'estensione .so
), e aggiungere quella directory al vostro PYTHONPATH
ambientale variabile ad esempio, aggiungi
export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH
o una riga simile nel file di configurazione della shell.
Una soluzione più robusta includerebbe la compilazione con ./configure --prefix=$HOME/.local
. Supponendo che QuickFix sappia mettere i file Python nell'appropriato site-packages
, quando lo si fa make install
, dovrebbe installare i file su ~/.local/lib/pythonX.Y/site-packages
, che, per Python 2.6+, dovrebbe già essere sul percorso Python come per-user site-packages directory.
Se, d'altra parte, lo ha fatto fornire un file setup.py
, basta eseguire
python setup.py install --user
per Python 2.6+.
Ecco la FAQ ufficiali su come installare moduli Python: http://docs.python.org/install/index.html
Ci sono alcuni consigli che potrebbero aiutarvi.
sì, ho dato un'occhiata a questo, ma il problema è che descrive come installare qualcosa che è stato confezionato come un modulo python (qualcosa da installare usando setup.py). Non dice come installare una libreria che ha lasciato un .so in giro. :( –
Ecco alcune altre idee http: // dubroy .com/blog/so-you-want-to-install-a-python-package /. Sembra che la soluzione per voi potrebbe essere pip (http://pypi.python.org/pypi/pip). –
È necessario installarlo in una directory nella cartella Inizio e in qualche modo manipolare il PYTHONPATH in modo che la directory sia inclusa.
Il modo migliore e più semplice è utilizzare virtualenv. Ma ciò richiede l'installazione, provocando un catch 22. :) Ma controlla se virtualenv è installato. Se è installato si può fare questo:
$ cd /tmp
$ virtualenv foo
$ cd foo
$ ./bin/python
allora si può solo eseguire l'installazione, come al solito, con/tmp/foo/python setup.py install. (Ovviamente è necessario creare l'ambiente virtuale in una cartella nella home directory, non in/tmp/foo.))
Se non c'è virtualenv, è possibile installare il proprio Python locale. Ma neanche questo potrebbe essere permesso. Poi si può installare il pacchetto in una directory locale per i pacchetti:
$ wget http://pypi.python.org/packages/source/s/six/six-1.0b1.tar.gz#md5=cbfcc64af1f27162a6a6b5510e262c9d
$ tar xvf six-1.0b1.tar.gz
$ cd six-1.0b1/
$ pythonX.X setup.py install --install-dir=/tmp/frotz
Ora è necessario aggiungere al vostro /tmp/frotz/pythonX.X/site-packages
PYTHONPATH, e si dovrebbe essere installato e funzionante!
"Inoltre, ho provato a inserire il percorso per .so in sys.path, che non funzionava."Hai provato a importare il modulo di estensione da uno script (o sessione interattiva) nella stessa directory del file' .so' per l'estensione? – gotgenes