Domanda

Im corrente di un server Solaris che utilizza il supervisore per monitorare alcune applicazioni Python.

In precedenza, potrei eseguire il comando:

paster serve /opt/pyapps/menuadmin/prod.ini
.

Da qualsiasi directory sul server.Ci sono stati alcuni problemi recenti e la cartella / opt è stata ripristinata da un backup precedente.Questa cartella conteneva tutte le applicazioni incluso il supervisore.

Ora stiamo affrontando problemi in cui il supervisore non avvia le applicazioni a causa dei "conflitti di versione" in Pylons.

È qui che diventa strano e non ha senso perché questi errori si verifichino.

Se eseguo il comando Paster dall'esterno della directory del programma, lancerà l'errore di conflitto della versione.ad esempio:

cd /
paster serve /opt/pyapps/menuadmin/prod.ini
Traceback (most recent call last):
  File "/opt/csw/bin/paster", line 8, in <module>
    load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
  File "/opt/csw/lib/python2.6/site-packages/PasteScript-1.7.5-py2.6.egg/paste/script/command.py", line 93, in run
    commands = get_commands()
  File "/opt/csw/lib/python2.6/site-packages/PasteScript-1.7.5-py2.6.egg/paste/script/command.py", line 135, in get_commands
    plugins = pluginlib.resolve_plugins(plugins)
  File "/opt/csw/lib/python2.6/site-packages/PasteScript-1.7.5-py2.6.egg/paste/script/pluginlib.py", line 82, in resolve_plugins
    pkg_resources.require(plugin)
  File "/opt/csw/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/pkg_resources.py", line 626, in require
  File "/opt/csw/lib/python2.6/site-packages/setuptools-0.6c9-py2.6.egg/pkg_resources.py", line 528, in resolve
pkg_resources.VersionConflict: (Pylons 0.9.7 (/opt/csw/lib/python2.6/site-packages/Pylons-0.9.7-py2.6.egg), Requirement.parse('Pylons>=0.10'))
.

Ma se eseguo il comando dall'interno della directory dei programmi, funzionerà bene.ad esempio:

cd /opt/pyapps/menuadmin/
paster serve /opt/pyapps/menuadmin/prod.ini
Starting server in PID 29902.
serving on http://127.0.0.1:3002
.

Non riesco assolutamente a capire il motivo per cui questo sarebbe successo!

Tutti i pensieri o i commenti sono apprezzati !!!!

È stato utile?

Soluzione

Basato su ciò che hai detto sembra che stai eseguendo due diverse versioni di Paster.La prima versione esegue il pacchetto di piloni più anziano 0.9.7, mentre il secondo ha la versione più aggiornata che soddisfa o supera i requisiti della tua app.

Quello che farei è prima di controllare quale versione di Paster hai in esecuzione.Dall'esterno del progetto è appena eseguito:

which paster
.

Quindi eseguire lo stesso comando di nuovo all'interno della directory del progetto e confrontare i risultati.Sospetto che troverai che i percorsi differiscono.Se questo è il caso, tutto ciò che devi fare è aggiornare la versione di Pylons per la prima versione, che immagino è l'installazione globale.

Tuttavia, come altri hanno commentato che sarebbe meglio gestire le app all'interno di Virtualenv, specialmente se come sembri indicare che hai più virtualV e quindi più progetti.Fidati di me quando dico che ti farà risparmiare da carichi di mal di testa in seguito, da qualcuno che non ha fatto questo in origine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top