将python站点部署到生产服务器

时间:2015-01-14 04:20:05

标签: python django git deployment

我在测试服务器上有django网站,我对如何部署程序感到困惑。

我当地有这些文件夹

code
virtualenv
static
static/app/bower_components
node_modules

git上的当前我只有代码文件夹。

我最初的想法是在生产服务器上执行此操作

git clone repo
pip install
npm install 
bower install
colectstatic

但我有这个问题,有时pip or npm or bowel中的某些组件无法安装,然后生产deployemnet失败。

我在考虑将所有内容放在git中的静态,bower,npm等中,以便我可以在生成中获取所有内容。

这是正确的做法吗?我想知道解决这个问题的正确方法

2 个答案:

答案 0 :(得分:2)

  

但我遇到了这个问题,有时候某些组件是pip或npm或者   肠道无法安装,然后生产部署失败。

除了找出生产失败的原因之外没有解决方案(或者解决方法是不在生产中安装任何东西,只是将东西复制过来)。

我会提醒第二个选项,因为Python虚拟环境不是为了便携而设计的。如果您有PIL / Pillow或数据库驱动程序等组件,则需要在构建时安装和编译系统库。

以下是我推荐的内容,与文档中的deployment section一致:

  1. 创建更新的需求文件(pip freeze> requirements.txt)
  2. 在您的测试环境中运行collectstatic。
  3. 将静态目录移动到前端/代理计算机,并将其映射到STATIC_URL。通过浏览静态URL(例如:http://example.com/static/images/logo.png
  4. 确认此方法有效
  5. 将您的代码库克隆/复制到生产服务器。
  6. 创建一个空白虚拟环境。
  7. 使用pip install -r requirements.txt
  8. 安装依赖项
  9. 请确保run through the deployment checklist,其中包含启用生产所需的安全提示和设置。
  10. 在此之后,您可以使用自己喜欢的方法启动django服务器。

    部署django有many, many guides,许多是针对特定环境定制的(例如,AWS自动化,Heroku部署提示,数字海洋等)您可以浏览这些想法(我通常会选择任何自动化)提示)但要小心采用一种策略,而不要确保它适用于您的特定环境/要求。

答案 1 :(得分:0)

此外,this可能对某些部署指南有所帮助。