Pasterはプログラムディレクトリから実行する必要がありますか?
-
13-12-2019 - |
質問
スーパーバイザーを使っていくつかのPythonアプリケーションを監視するSolarisサーバーを実行しています。
以前は、コマンドを実行できます。
paster serve /opt/pyapps/menuadmin/prod.ini
.
サーバ上の任意のディレクトリから。最近の問題があり、/ optフォルダは以前のバックアップから復元されました。このフォルダには、スーパーバイザを含むすべてのアプリケーションが含まれていました。
Pylonsの「バージョンの衝突」のため、スーパーバイザーがアプリケーションを開始しない問題に直面しています。
これはそれが奇妙になるところであり、それはこれらの誤りが発生する理由を意味します。
プログラムディレクトリの外部からpasterコマンドを実行すると、バージョンの競合エラーが表示されます。例:
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'))
.
しかし、プログラムディレクトリの内側からコマンドを実行した場合は、大丈夫です。例:
cd /opt/pyapps/menuadmin/
paster serve /opt/pyapps/menuadmin/prod.ini
Starting server in PID 29902.
serving on http://127.0.0.1:3002
.
私はこれが起こるのかなぜその周りを絶対に得ることはできません!
まったく考えやコメントが高く評価されています!!!!
解決
あなたがそれがあなたが2つの異なるバージョンのPasterを実行しているようです。最初のバージョンは古いPylonsパッケージ0.9.7を実行していますが、2番目のバージョンはあなたのアプリの要件を満たすか超える最新のバージョンを持っています。
私がやることは最初にあなたが実行しているパターンのバージョンを確認します。プロジェクト外から実行するだけです:
which paster
.
はプロジェクトディレクトリ内で同じコマンドを再度実行して結果を比較します。パスが異なるとわかります。そうであれば、あなたがする必要があるのは最初のバージョンのパイロンのバージョンを更新することです。私は推測しているグローバルインストールです。
しかし、他の人がコメントしているので、特にあなたが複数のvirtualenvとしたがって複数のプロジェクトを持っていることを示すように思われるように思われるように、Virtualenv内でアプリを実行することをお勧めします。私が最初に行わなかった人から後で、後で頭痛の負荷からあなたを救うと私に信頼してください。