使用Heroku设置PYTHONPATH和PYTHONHOME

9
我正在尝试设置我的PYTHONPATH和PYTHONHOME变量,但无法弄清楚!
当尝试运行python时,我收到错误“没有名为site的模块”。
经过一些研究,似乎是因为这些PYTHONPATH和PYTHONHOME环境变量未正确设置。
当我尝试取消设置这两个变量后再运行python,它可以正常运行。但问题在于,这只能持续我的虚拟环境的生命周期。在我停止虚拟环境并再次运行它之后,问题会再次出现。
好吧,我说的是虚拟环境,但实际上是我的Heroku环境。
如何永久取消设置这些变量?
更新:我按照这里的教程操作,似乎解决了问题。

如果PYTHONPATH没有正确设置,这可能更多是Heroku的问题而不是Python的问题,请找出PYTHONPATH应该是什么,并查看Heroku的配置文档以了解如何设置它:https://devcenter.heroku.com/articles/config-vars - Thomas Orozco
你可以尝试动态设置 PYTHONPATHPYTHONHOME,以便每次运行程序时都会设置它们。 - digitalnomd
我感觉我们没有足够的信息来回答这个问题。您没有向我们展示堆栈跟踪或回应“答案”,说明您需要找出这些变量具有什么值。也许有人可以从您的更新链接中推断出一个好的答案。 - Russia Must Remove Putin
3个回答

0

你为什么需要这样做呢?

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


0

参考博客文章中提到的解决方案:

On Heroku, your home directory is generally "/app". You should confirm this by running:

$ heroku run env | grep HOME
HOME=/app

A simple way to adjust your Python path within your Heroku environment (and not mucking with your app) is by setting the PYTHONPATH env variable as follows:

$ heroku config:add PYTHONPATH=/app

To confirm it is set correctly, run:

$ heroku run env | grep PYTHONPATH
PYTHONPATH=/app

Now you can run your custom management command. This also allows you to run these as cron (scheduled) tasks:

$ heroku run python your_app/manage.py your_custom_command
Success!
请注意,添加到(或创建)PythonPath 对于大多数 Python 环境都是有效的,不仅仅适用于 Heroku,但您需要确定如何为给定的环境添加它。
一种方法是将 PYTHONPATH 变量添加到本地用户或系统环境中。了解有关 PYTHONPATHPYTHONHOME 和其他 Python 相关环境变量的更多信息,请阅读 Python 文档

-2
尝试运行Python时,我遇到了“没有名为site的模块”的错误。经过一些研究,似乎是因为PYTHONPATH和PYTHONHOME环境变量设置不正确所致。
听起来像是正确答案。您需要弄清楚这些变量在何时具有什么值,它们应该具有什么值,以及您环境中的现有程序是如何将这些变量设置为错误值的。
所有这些都只能通过检查您的环境来回答,祝好运 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接