2015-06-10 17 views
5

ho di solito schierato le mie applicazioni pallone con un abbastanza semplice script tessuto che ha messo la fonte sul computer di destinazione, abituato pip installare eventuali dipendenze, poi sparato uwsgi con tutte le impostazioni necessarie e off è andato.distribuzione Python/Flask senza pip

Tuttavia, ho un nuovo problema che alcune nuove impostazioni di protezione nei nostri ambienti ci hanno impedito di accesso al di fuori della rete in modo cercando di usare PIP installare le nostre dipendenze fallisce. Ho guardato in utilizzando python setup.py sdist per creare un pacchetto pensando che questo avrebbe costruito tutto giù sulla macchina sviluppatore quindi ho potuto caricare il .tar.gz al computer di distribuzione e installarlo, ma sta ancora cercando di contattare PIP per ottenere le dipendenze.

C'è un modo per ottenere un pacchetto completamente compilato con dipendenze e tutto ciò che ho potuto utilizzare per distribuire al mio server? C'è qualche impostazione sdist che posso usare?

risposta

2

Assumendo che il sistema di compilazione è compatibile a livello binario con l'obiettivo, o non è necessario alcun estensioni compilati, è possibile utilizzare per compilare pip wheel si proietta e tutte le sue dipendenze a rotelle, copiare i file sul server, e pip install solo dalla directory della ruota.

# on build machine 
cd myproject 
pip wheel --wheel-dir wheelbase . 
scp -r wheelbase [email protected] 

# on target machine 
pip install --no-index --find-links=wheelbase myproject 

Dovreste essere in grado di copiare lo sdist dispari nella directory --find-links, nel qual caso pip installerà dal sdist, se si deve ricompilare sul server.

+0

Questo sembra essere molto promettente. Ho provato a modo tuo e sembra che non abbia installato tutti i pacchetti di cui avevo bisogno. Ho provato a costruire la ruota dal file requirements.txt che sembrava avere tutti i miei pacchetti ora, ma quando ho provato ad installarli sulla scatola ho ottenuto MarkupSafe-0.23-cp27-nessuno-linux_i686.whl non è una ruota supportato su questa piattaforma . Ho guardato nella directory del volante e ha quella ruota. La mia macchina di sviluppo è Ubuntu e il mio obiettivo è CentOS. Eventuali suggerimenti? – ThrowsException

+0

Scarica lo sdist di MarkupSafe e inseriscilo anche nella directory del volante. Pip dovrebbe essere abbastanza intelligente da costruire quella macchina target. O semplicemente costruire su una macchina virtuale CentOS. https://pypi.python.org/pypi/MarkupSafe – joeforker

+0

Grazie. Ho finito per fare il secondo. Costruito su una macchina centos esistente e copiato il wheeldir. Sembra avere tutto ciò di cui ho bisogno ora. – ThrowsException

Problemi correlati