Pylons重定向出现:AttributeError: 'HTTPFound'对象没有属性'exception

4 投票
2 回答
1068 浏览
提问于 2025-04-18 09:00

(这个问题是我为了解决一个bug而进行的研究记录,目的是为了节省其他人解决这个问题的时间。)

我有一个使用Pylons 1.0.1框架搭建的网页。

开发者建议我升级到他们的新产品Pyramids,因为Pylons 1.0.1将不再进行任何更新。

不过,我并不需要新的功能——这个网站只是处于维护状态,所以我没有升级框架。

最近,在我对服务器进行了一些其他更改后,网站停止工作了,尽管我的代码没有任何变化。特别是,当我尝试进行重定向时,出现了以下错误:

AttributeError: 'HTTPFound'对象没有'exception'这个属性

2 个回答

1

我已经升级到了最新版本的:

https://github.com/Pylons/pylonshttps://github.com/Pylons/webob 然后问题就解决了!

以下是我的操作步骤:

git clone git@github.com:Pylons/webob.git
cd webob/ & python setup.py install --user
git clone git@github.com:Pylons/pylons.git
cd pylons/ & python setup.py install --user

我现在使用的具体版本是:

pylons:

pylons$ git log -1 --decorate=full
commit 7e8bac74046ba1ae1509c844fa5cd878490a3413 (HEAD, refs/remotes/origin/master, refs/remotes/origin/HEAD, refs/heads/master)
Date:   Tue Jul 7 18:05:23 2015 -0700

webob:

webob$ git log -1 --decorate=full
commit 565fe4420c147623c4a8f1077d6deab7ba732040 (HEAD, refs/remotes/origin/master, refs/remotes/origin/HEAD, refs/heads/master)
Date:   Sat Jun 27 22:03:39 2015 -0600

另外,你可以看看我在安装zookeepr时遇到这个问题的步骤:

https://github.com/flosokaks/zookeepr/commit/70766f190d58c04fec625be82ec56b7c6d405fb7#diff-7d442b7eb49f5fc377f51e74b291cfc1R18

5

Pylons这个框架依赖于WebOb。在它的依赖项中,要求安装WebOb的版本要大于等于1.3.1。

在WebOb 1.3.1版本中,有一个叫做'exception'的属性。Pylons在处理重定向时会用到这个属性。

不过,这个属性已经被弃用了,最开始是计划在1.3版本中就去掉它。

2014年5月14日,WebOb 1.4版本发布了。虽然发布说明里没有提到,但其中一个变化就是去掉了exception属性

所以,如果你安装Pylons 1.0.1并让它自动选择所有依赖项,它会包含一个与之不兼容的WebOb版本。

这就解释了问题所在。

(解决方案就不太明确了:是降级WebOb?还是等可能永远不会出现的Pylons 1.0.2?或者迁移到Pyramid?)

撰写回答