Paste需要从程序目录运行?
-
13-12-2019 - |
题
IM运行Solaris服务器,它使用Supervisor来监视一些Python应用程序。
先前,我可以运行命令:paster serve /opt/pyapps/menuadmin/prod.ini
.
从服务器上的任何目录。有一些最近的问题,而且从以前的备份恢复/ opt文件夹。此文件夹包含所有应用程序,包括主管。
现在我们正面临主管不会因为塔中的“版本冲突”而无法启动应用程序的问题。这是它的奇怪的地方,它没有意义为什么会发生这些错误。
如果我从程序目录的外部运行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
.
我绝对不能让我的脑袋会发生这种情况!
任何想法或评论都赞赏!!!!
解决方案
基于您所说的似乎您正在运行两个不同版本的佩塞者。第一个版本正在运行0.9.7的较旧的塔,而第二个版本有更多的达到或超过您的应用要求的日期版本。
我所做的就是首先检查您正在运行的佩塞者版本。从项目之外运行:
which paster
.
然后在项目目录中再次运行相同的命令并比较结果。我怀疑你会发现路径有所不同。如果是这种情况,那么您需要做的就是更新第一个版本的Pylons版本,我猜是全局安装。
但是,由于其他人评论说,在VirtualEnv中运行应用程序会更好,特别是如果您似乎表示您有多个VirtualEnv,因此有多个项目。当我说它会在稍后的情况下拯救你,从没有这样做的人那里拯救你的头痛。 不隶属于 StackOverflow