【问题标题】:Setting PYTHONPATH and PYTHONHOME using Heroku使用 Heroku 设置 PYTHONPATH 和 PYTHONHOME
【发布时间】:2012-05-27 08:48:34
【问题描述】:

我正在尝试设置我的 PYTHONPATHPYTHONHOME 变量,但无法弄清楚!

尝试运行python 时,我收到错误No module named site

经过一番研究,似乎是因为这些PYTHONPATHPYTHONHOME环境变量设置不正确。

当我在取消设置这两个变量后尝试运行python 时,它能够正常运行。但问题是这只会持续到我的virtualenv 的一生。在我停止virtualenv 并再次运行它后,问题又回来了。

我说的是virtualenv,但实际上这是我在 Heroku 上的环境。

如何永久取消设置这些变量?


更新:我关注了tutorial here,这似乎可以解决问题。

【问题讨论】:

  • 如果 PYTHONPATH 设置不正确,这可能更像是 Heroku 问题而不是 Python 问题,请弄清楚 PYTHONPATH 应该是什么,并查看 Heroku 的配置文档以了解如何设置它: devcenter.heroku.com/articles/config-vars
  • 您可以尝试动态设置PYTHONPATHPYTHONHOME,以便在每次程序运行时设置。
  • 我觉得我们没有足够的信息来回答这个问题。您没有向我们展示堆栈跟踪,也没有回复“答案”说您需要弄清楚这些变量具有什么值。也许有人可以从您的更新链接中推断出一个不错的答案。

标签: python django heroku


【解决方案1】:

来自blog post 的参考解决方案:

在 Heroku 上,您的主目录通常是“/app”。你应该确认 通过运行:

$ heroku run env | grep HOME
HOME=/app

在 Heroku 环境中调整 Python 路径(而不是与您的应用程序混在一起)的一种简单方法是设置 PYTHONPATH 环境变量,如下所示:

$ heroku config:add PYTHONPATH=/app

要确认设置正确, 运行:

$ heroku run env | grep PYTHONPATH
PYTHONPATH=/app

现在您可以运行自定义管理命令。这也允许您将这些作为 cron(计划)任务运行:

$ heroku run python your_app/manage.py your_custom_command
Success!

请注意,添加(或创建)PythonPath 对大多数 Python 环境都有效,不仅仅是 Heroku,但您需要确定如何为给定环境添加。

一种方法是将PYTHONPATH 变量添加到您的本地用户或系统环境中。阅读有关PYTHONPATHPYTHONHOME 和其他Python-related environment variables in the Python Documentation 的更多信息。

【讨论】:

    【解决方案2】:

    为什么需要这样做?

    在 Heroku 中,当您选择 python Buildpacks 时,这些变量会自动设置,您可以在您的 dyno 中从 Heroku CLI 运行任何 python 脚本。

    【讨论】:

      【解决方案3】:

      尝试运行 python 时,我收到错误 No module named site. 经过一番研究,似乎是因为这些 PYTHONPATH 和 PYTHONHOME 环境变量设置不正确。

      这听起来像是正确的答案。您需要弄清楚这些变量当时有什么值,它们应该有什么值,以及你的环境中的现有程序是什么设置将这些变量设置为错误的值。

      所有这些只能通过检查你的环境来回答,祝你好运:-)

      【讨论】:

        猜你喜欢
        • 2019-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        • 1970-01-01
        • 2017-09-08
        相关资源
        最近更新 更多