有人能帮助我们指导如何让Django >1.5在Google上工作吗?我见过一些人声称他们让Django 1.6工作。我们想要1.6或1.7的跑步。我在这里搜索了关于如何设置这个的说明。到目前为止还没有运气。
更新:在我们的开发机器中,我们安装了Django 1.7 (包括/user/local和virtualenv)。但是,如果我们修改GAE yaml以使用Django 1.7,则会得到以下错误消息:
google.appengine.api.yaml_errors.EventError: django version "1.7" is not supported, use one of: "1.2", "1.3", "1.4", "1.5" or "latest" ("latest" recommended for development only) in "./app.yaml",/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib目录中的1.9.12 GoogleAppEngine sdk安装显示了下面列出的GoogleAppEngine版本:
我的问题是如何在Google上正确设置Django 1.7的开发环境,以及如何确保在生产中部署到Google时,我们成功地使用Django 1.7部署我们的应用程序。当我们部署应用程序时,我们如何在GAE上部署Django 1.7?
发布于 2014-10-06 08:10:58
您可以在Google应用程序中使用任何纯Python第三方库。为了使用第三方库,只需将这些文件包含在应用程序的目录中,当您将其部署到我们的系统时,它们将随应用程序一起上载。您可以像导入应用程序中的任何其他Python文件一样导入这些文件。
我的应用程序是这样使用Django 1.7的,一切都很好。但是,由于App的局限性及其特性,有时您可能需要进行某种黑客攻击。但这取决于您的用例。
我还建议在您的项目中使用虚拟环境。通过pip安装App不支持的每个库,然后在应用程序目录中创建指向给定库的符号链接。
通过这种方式,您可以将所有必需的包保存在一个文件(例如requirements.txt)中,这些包可以与源文件一起存储在SCM系统(例如Git)中,其他团队成员可以很容易地复制您的工作环境。
只要您使用虚拟环境并安装所有所需的库(Django,.)通过pip,这里是应该适合您的目录布局。
使用下面的命令可以轻松地部署这样的布局。
$ appcfg.py update app-engine-project-root或者用App开发服务器进行测试。
$ dev_appserver.py app-engine-project-root更新
由于App版本1.9.15,您可以使用扶手机制来设置第三方库。您不必在应用程序目录中创建指向Python文件夹的符号链接。
在应用程序根目录中直接创建lib目录,并告诉应用程序如何通过appengine_config.py文件在该目录中查找库。
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')下面是新的目录布局。
使用pip和-t库标志在这个目录中安装库。
$ pip install -t lib [lib-name]或
$ pip install -t lib -r requirements.txt发布于 2014-10-05 22:22:43
你不能- GAE只支持1.5,即使这被标记为实验性。如果您需要django 1.7,也许您应该使用Google计算引擎,这是谷歌用于虚拟机的品牌名称,您可以使用它。
如果您没有与结婚,Heroku支持django 1.7,没有问题。
您有关于如何将Django 1.7项目移动到的具体指南吗?有一堆谷歌的东西,没有任何指南,如何使他们工作。
下面是步骤,但是如果您部署在任何其他服务器上,它们也是相同的,因为GCE只是提供了一个linux实例:


一旦您配置了机器,它将在线引导,然后您将可以通过SSH访问终端。
从现在开始,您应该像对待任何linux服务器一样对待这个实例。使用普通的打包工具安装任何你需要的东西,上传你的文件,等等。
对于亚马逊来说,这个过程要简单一些,因为有一个非盟驻苏特派团大型图书馆可以用于一键部署过程。AMI是-一个可以部署实例的模板。
对于Heroku来说,作为一个PaaS,您不必担心硬件组件;但是,与大多数PaaS平台一样,您没有对文件系统的写访问权。因此,要管理静态资产,您必须做一些额外的工作。最简单的选择是在亚马逊上创建一个S3桶,并将其与django-storages一起使用。在heroku的正式django教程建议使用dj-static直接从Heroku提供文件。这对于测试来说很好,但是如果您想要开始上传文件,那么您需要正确地处理这些文件。
然而,一旦解决了这些问题,步骤就更简单了:
先决条件:
dj-database-url Python包gunicorn Python包基本步骤:
git init在源代码目录中创建一个git存储库(如果您还没有完成)。requirements.txt。如果您使用的是虚拟环境,pip freeze > requirements.txt应该这样做。否则,您可以创建一个文本文件并列出所需的包。settings.py,在最下面添加一行:import dj_database_url DATABASES['default'] = dj_database_url.config()Procfile (大小写很重要)。这就是您如何告诉Heroku您的应用程序需要什么样的dyno (进程)。对于django,您需要一个web,所以在这个文件中,下面的行应该这样做:web: gunicorn yourproject.wsgi --log-file -在Heroku上创建一个应用程序并进行部署。您应该从源代码目录中运行这些命令:
heroku create --buildpack https://github.com/heroku/heroku-buildpack-pythonheroku addons:add heroku-postgresql:devgit push heroku masterheroku run python yourproject/manage.py migrate --noinputheroku run python web/manage.py collectstatic您只执行前两个步骤一次,然后每当您需要更新应用程序时,只需使用git push heroku master在Heroku上创建一个新的修订版。
发布于 2014-10-06 04:17:01
App的Python环境目前知道如何通过libraries:配置机制提供到1.5版的Django。这并不意味着Django的后续版本不能工作,只是它们还没有内置。(我不知道为什么最新的内置版本是1.5。这可能与AE将每个受支持的Django版本与SDK捆绑在一起的历史政策有关,这可能需要修改以防止SDK变得太大。)
您可以尝试在应用程序文件中包含Django 1.7。我还没有专门用1.7试过这个,但它适用于以前的版本。在您的sys.path中需要对main.py进行一些调整。
请注意,应用程序文件的限制为10,000个。如果您担心这个限制,一种选择是使用Python的zipimport并将Django作为zip存档。https://docs.python.org/2/library/zipimport.html
https://stackoverflow.com/questions/26207326
复制相似问题