【问题标题】:How to upgrade the version of Python used by Apache?如何升级 Apache 使用的 Python 版本?
【发布时间】:2009-12-10 12:42:41
【问题描述】:

在 Red hat 盒子上,我将 Python 从 2.3 升级到 2.6.4,并将符号链接更改为 python,所以当我输入 python 时,2.6.4 解释器就会出现。

但是,我的 .py 文件可以在命令行中运行,但不能在浏览器中运行。这似乎是一个sys.path 的问题,所以我在浏览器中打开文件并打印出sys.path

令人惊讶的是,我的sys.path 从浏览器调用时与从命令行调用时不同。因为路径都指的是 2.3,所以我相信 Apache 正在选择 Python 2.3,而不是我安装的新 2.6.4 版本。

如何让 Apache 使用 Python 2.6.4?

【问题讨论】:

  • 如果您没有在此处得到响应,您可能需要尝试 serverfault.com。
  • 您使用的是 mod_wsgi 还是 mod_python 或其他链接?

标签: python apache upgrade sys.path


【解决方案1】:

如果您使用的是mod_pythonmod_wsgi,您应该重新安装它们,因为它们可能已经构建为您在系统上首次安装时所拥有的 python 版本(在您的情况下似乎是 Python 2.3)。

【讨论】:

  • 我如何判断服务器使用的是 mod_python 还是 mod_wsgi(或者更确切地说,它们中的哪一个)?
  • 从命令行运行httpd -Mapachectl -M。两者都应该在您的 Apache 安装中列出动态和静态加载的模块。
  • @Pranab - 你很可能有 mod_python。 RedHat 还没有包含 mod_wsgi 的版本。您还需要重新编译模块以使用正确的嵌入式解释器。重新安装不会改变这一点。
  • 我最终通过手动使用python2.3 setup.py install 将所需的 Python 模块也安装到旧版 Python 来回避了这个问题。
【解决方案2】:

Apache 没有直接调用 python,所以路径无关紧要。您可能希望自己构建一个新的 mod_wsgi 以链接到 python 2.6.4。

【讨论】:

    【解决方案3】:

    在 RH 机器上,Apache 可能以 root 用户身份运行。以root身份登录,看看哪个版本的python root看到了。

    ..里奇

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-22
      • 2022-07-12
      • 2022-08-20
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 2020-06-24
      • 2018-10-27
      相关资源
      最近更新 更多