我有一个在Heroku(Cedar堆栈)上运行的PythonFlask应用程序,它有两个自定义域(一个有www子域,一个没有)。我想将所有传入请求重定向到www。所请求资源的版本(thisquestion的倒数)。我想为此我需要一些WSGI中间件,但我找不到一个好的例子。我该怎么做? 最佳答案 比创建单独的Heroku应用程序更简单的解决方案是before_request函数。fromurllib.parseimporturlparse,urlunparse@app.before_requestdefredirect_nonwww(
我在Heroku(免费层)上运行Flask应用程序,在使用apply_async安排任务时遇到了一些问题。如果我安排了两个以上的任务,我会得到一个很长的堆栈跟踪,但有一个异常(exception):AccessRefused(403,u"ACCESS_REFUSED-accesstoexchange'celeryresults'invhost'rthtwchf'refusedforuser'rthtwchf'",(40,10),'Exchange.declare')奇怪的是前两个任务(在重新启动我的所有进程之前)似乎总是毫无问题地完成。搜索引擎的一点点调查让我找到了https://st
我在Sentry异常中不断收到以下错误AttributeError:'RegexURLResolver'对象没有属性'_urlconf_module'跟踪仅指向django代码库中的代码,而没有指向我的应用程序中的任何位置。我的日志也很干净。这可能是什么原因?raiseResolver404({'path':path})@propertydefurlconf_module(self):try:returnself._urlconf_moduleexceptAttributeError:self._urlconf_module=import_module(self.urlconf_nam
我知道Heroku平台的内存限制,而且我知道将应用程序分成Web和workerdynos的可扩展性要高得多。但是,出于测试目的,我仍然希望与Web进程一起运行异步任务。Dynos很昂贵,我想在Heroku提供的免费实例上制作原型(prototype)。在与Web进程相同的dyno中生成新作业作为进程或子进程是否有任何问题? 最佳答案 在较新的Cedar堆栈上,生成多个进程没有问题。每个dyno都是一个虚拟机,除了内存和CPU使用率(我认为大约512MB内存和1个CPU核心)外没有特别的限制。遵循某些堆栈(例如Python)的较新安装
今天,我在Heroku上的所有Python/Django应用程序都停止工作了。所有这些的日志都显示相同的问题。尝试重新启动/构建时,错误日志如下所示。我已经尝试在新的本地虚拟环境中重建项目,它们在本地运行良好。然而,当他们推送到Heroku时,他们遇到了这个ImportError并拒绝部署。同样,当我尝试重新启动现有应用程序时,我看到在实例崩溃之前记录了相同的错误。如果我可以提供任何其他信息,请告诉我。错误日志:2014-06-03T22:30:05.293788+00:00heroku[web.1]:Statechangedfromcrashedtostarting2014-06-0
我正在创建一个简单的flaskapp,我将在heroku上部署它,这是我第一次在heroku上部署python应用程序,也就是说我是gunicorn的新手。附加说明:使用虚拟环境。flask版本Flask==0.10.1unicorn==19.3.0使用“pythonrun.py”有效使用'foremanstart'我得到以下错误16:35:44web.1|startedwithpid404716:35:44web.1|[2015-03-3016:35:44+0000][4047][INFO]Startinggunicorn19.3.016:35:44web.1|[2015-03-30
我在scrapy中开发了几个蜘蛛,我想在Heroku云上测试它们。有人知道如何在Heroku云上部署Scrapy蜘蛛吗? 最佳答案 是的,在Heroku上部署和运行Scrapy爬虫相当简单。以一个真实的Scrapy项目为例,步骤如下:克隆项目(注意,它必须有一个requirements.txt文件,Heroku才能将其识别为Python项目):gitclonehttps://github.com/scrapinghub/testspiders.git将cffi添加到requirement.txt文件(例如cffi==1.1.0)。创
我正在尝试使用Flask在Heroku上运行一个简单的图像上传应用程序。我在这里学习教程:http://flask.pocoo.org/docs/patterns/fileuploads/但是,我想使用S3来存储文件而不是临时目录,因为Heroku不允许您写入磁盘。我找不到任何具体针对Heroku和Flask执行此操作的示例。 最佳答案 在我看来,在将上传文件存储到临时文件的示例代码中,您只需替换file.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))使用将文件上传到
我目前正在尝试制作python教程,并在Heroku站点上使用ipython笔记本托管它们。问题是ipython笔记本在上传时是静态的。我正在努力使用户可以交互使用笔记本(例如打印输出)。我也不希望他们笔记本的输出永久保存在Heroku网站上。 最佳答案 据我了解,您有2个问题需要处理:交互式笔记本“只读”笔记本(不保存修改)对于问题1,您需要使用jupyter(笔记本的新IPython名称)服务器。仅显示笔记本是不够的,因为您需要一台服务器来“理解”并执行修改。请参阅:http://jupyter-notebook.readthe
我制作了一个使用PythonCGI脚本的简单应用程序。我有一个工作的本地版本(与lighttpd一起工作很好),但现在我想将它上传到Heroku。该应用程序由2或3个脚本组成,这些脚本对文件进行操作并将信息打印回浏览器,因此我认为除了CGI之外我不需要任何模块。但是Herokudocumentation只解释了如何使用精美的网络框架上传Python应用程序,我没有使用任何这些框架。我想知道是否可以在Heroku上运行CGI脚本,如果可以,如何操作。 最佳答案 HerokuCedar以自托管Web应用程序为中心,因此您需要能够将应用程