Pergunta

Eu estou correndo um solaris servidor que usa supervisor para monitorar algumas aplicações Python.

Anteriormente, eu poderia executar o comando:

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

a partir de qualquer diretório no servidor.Havia algumas questões recentes e /opt pasta foi restaurado a partir de uma cópia de segurança anterior.Esta pasta continha todos os aplicativos, incluindo o orientador.

Agora estamos enfrentando problemas em que o supervisor não vai iniciar as aplicações devido a "conflitos de versão" em Torres.

Este é o lugar onde ele fica estranho e não faz sentido porque estes erros podem ocorrer.

Se eu executar o paster comando a partir de fora do diretório do programa, ele irá lançar a versão erro de conflito.por exemplo:

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'))

Mas, se eu executar o comando a partir de dentro do diretório do programa, ele será executado multa.por exemplo:

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

Eu absolutamente não posso colocar minha cabeça em torno por que isso iria acontecer!

Quaisquer pensamentos ou comentários são bem-vindos!!!!

Foi útil?

Solução

De acordo com o que você disse parece que você está executando duas versões diferentes do paster.A primeira versão é a execução de antigos Postes de pacote 0.9.7, enquanto que o segundo tem a mais atualizada versão que atende ou excede seu aplicativo requisitos.

O que eu iria fazer é verificar qual a versão do paster você está executando.De fora do projeto basta executar:

which paster

Em seguida, execute novamente o mesmo comando dentro do diretório do projeto e comparar os resultados.Eu suspeito que você vai descobrir que os caminhos são diferentes.Se for esse o caso, então tudo que você precisa fazer é atualizar a versão de pilares para a primeira versão, que eu estou supondo que é a instalação global.

No entanto, como outros já comentaram que seria melhor para executar aplicações dentro do virtualenv, especialmente se você parece indicar que você tem vários virtualenv e, assim, vários projetos.Confie em mim quando eu digo que ela vai salvar você de cargas das dores de cabeça mais tarde, a partir de alguém que não fazer originalmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top