gpt4 book ai didi

python - virtualenv 之间莫名其妙的 Urllib2 问题。

转载 作者:太空狗 更新时间:2023-10-30 01:23:59 26 4
gpt4 key购买 nike

我有一些测试代码(作为 webapp 的一部分)使用 urllib2 来执行我通常通过浏览器执行的操作:

  • 登录远程网站
  • 移至另一页
  • 通过填写表单执行 POST

我在 3 台不同的机器上创建了 4 个独立的、干净的 virtualenvs(使用 --no-site-packages),所有机器都有不同版本的 python 但完全相同的包(通过 pip 需求文件),并且代码只能工作在我本地开发机器(2.6.1 和 2.7.2)上的两个 virtualenvs 上——它不会在我的任何一个生产 VPS 上运行

在失败的情况下,我可以成功登录,移动到正确的页面,但是当我提交表单时,远程服务器回复告诉我出现错误 - 这是一个应用程序服务器错误页面('we couldn' t 完成您的请求') 而不是网络服务器错误。

  • 因为我可以成功登录并转到第二个页面,所以这似乎不是 session 或 cookie 问题 - 它是最终 POST 的特定问题
  • 因为我可以在具有完全相同的 header 和数据的特定机器上执行操作,所以这似乎不是我请求/发布的问题
  • 因为我正在从不同公司租用的两个独立 VPS 上尝试代码,所以这似乎不是 VPS 物理环境的问题
  • 因为代码适用于 2 个不同的 python 版本,我无法想象这是一个不兼容的问题

在这个阶段我完全不知道为什么这行不通。我什至“关闭并再次打开”,因为我看不出问题出在哪里。

我认为这一定与来自远程服务器不喜欢的 VPS 的最终 POST 有关,但我不知道那可能是什么。我觉得 URLlib 的幕后发生了一些事情,导致远程服务器不喜欢回复。

编辑我在 VPS 上安装了与我工作的本地副本完全相同的 Python 版本 (2.6.1),但它不能远程工作,所以它一定与源自 VPS 的东西有关。这会如何影响 Http 请求?是低级的东西吗?

最佳答案

您可以尝试为 urllib2 设置 debuglevel=1 并查看结果:

import urllib2
h=urllib2.HTTPHandler(debuglevel=1)
opener = urllib2.build_opener(h)
...

关于python - virtualenv 之间莫名其妙的 Urllib2 问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7508686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com