使用Heroku设置PYTHONPATH和PYTHONHOME

使用Heroku设置PYTHONPATH和PYTHONHOME,python,django,heroku,Python,Django,Heroku,我正在尝试设置我的PYTHONPATH和PYTHONHOME变量,但无法解决它 当尝试运行python时,我得到错误没有名为site的模块 在做了一些研究之后,似乎这是因为这些PYTHONPATH和PYTHONHOME环境变量设置不正确 当我在取消设置这两个变量后尝试运行python时,它能够正常运行。但问题是,这只会持续到我的virtualenv的生命周期。在我停止virtualenv并再次运行它之后,问题又出现了 我说的是virtualenv,但实际上这是我在Heroku上的环境 如何永久取

我正在尝试设置我的
PYTHONPATH
PYTHONHOME
变量,但无法解决它

当尝试运行
python
时,我得到错误
没有名为site的模块

在做了一些研究之后,似乎这是因为这些
PYTHONPATH
PYTHONHOME
环境变量设置不正确

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

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

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


最新消息:我遵循了似乎能奏效的方法

当尝试运行python时,我得到错误No module named site。 在做了一些研究之后,似乎这是因为这些PYTHONPATH和PYTHONHOME环境变量设置不正确

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

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

参考上述解决方案:

在Heroku上,您的主目录通常为“/app”。你应该确认一下 通过运行以下命令可以执行此操作:

$heroku run env|grep HOME
主页=/app
在Heroku环境中调整Python路径的一种简单方法(不干扰应用程序)是设置PYTHONPATH env变量,如下所示:

$heroku配置:添加PYTHONPATH=/app
要确认其设置正确, 运行:

$heroku运行环境| grep PYTHONPATH
PYTHONPATH=/app
现在,您可以运行自定义管理命令。这还允许您将这些作为cron(计划)任务运行:

$heroku运行python your_app/manage.py your_custom_命令
成功!
请注意,添加(或创建)PythonPath对于大多数Python环境都是有效的,不仅仅是Heroku,您还需要确定如何为给定环境添加PythonPath


一种方法是将
PYTHONPATH
变量添加到本地用户或系统环境中。阅读更多关于
PYTHONPATH
PYTHONHOME
和其他的信息。

为什么需要这样做


在Heroku中,当您选择python构建包时,这些变量被设置为自动,您可以从动态数据库中的Heroku CLI运行任何python脚本。

如果
PYTHONPATH
设置不正确,这可能更像是Heroku的问题,而不是python的问题,弄清楚
PYTHONPATH
应该是什么,查看Heroku的配置文档,了解如何设置:您可以尝试动态设置
PYTHONPATH
PYTHONHOME
,以便在每次程序运行时都进行设置。我觉得我们没有足够的信息来回答这个问题。你没有给我们看stacktrace,也没有回复“答案”说你需要找出这些变量的值。也许有人可以从你的更新链接中推断出一个不错的答案。