小编Rob*_*ith的帖子

使用gunicorn和nginx部署Django

这是一个广泛的问题,但我想得到一个规范的答案.我一直在尝试在Django中使用gunicornnginx部署一个站点.阅读吨的教程后,我获得了成功,但我不能肯定我遵循的步骤是不够好,没有问题或可能有更好的方法来做到这一点运行一个网站.这种不确定性很烦人.

这就是为什么我正在为新手寻找一个非常详细且解释清楚的答案.我不想解释太多我所知道的,什么我不知道,因为这会歪曲回答了一下,其他人可以受益程度较轻,从你的答案.但是,我想提到的一些事情是:

  • 您认为哪种"设置"最佳?我用的virtualenv和感动我的Django项目这个环境中,但是我已经看到了另一个设置那里是虚拟环境的项目文件夹等.

  • 如何以允许多个站点托管在单个服务器中的方式设置内容?

  • 为什么有人建议使用gunicorn_django -b 0.0.0.0:8000和其他人建议gunicorn_django -b 127.0.0.1:8000?我测试了后者的Amazon EC2实例,但而前者没有问题的工作也没有工作.

  • nginx的配置文件背后的逻辑是什么?有很多教程使用截然不同的配置文件,我很困惑哪一个更好.例如,有些人使用alias /path/to/static/folder和其他人root /path/to/static/folder.也许您可以共享首选配置文件.

  • 为什么我们之间创建一个符号链接site-available,并sites-enabled/etc/nginx

  • 一些最佳实践一如既往地欢迎:-)

谢谢

deployment django nginx setup-deployment gunicorn

80
推荐指数
2
解决办法
2万
查看次数

为熊猫设定差异

一个简单的熊猫问题:

是否有drop_duplicates()功能可以删除复制中涉及的每一行?

一个等效的问题如下:pandas对数据帧有不同的设置吗?

例如:

In [5]: df1 = pd.DataFrame({'col1':[1,2,3], 'col2':[2,3,4]})

In [6]: df2 = pd.DataFrame({'col1':[4,2,5], 'col2':[6,3,5]})

In [7]: df1
Out[7]: 
   col1  col2
0     1     2
1     2     3
2     3     4

In [8]: df2
Out[8]: 
   col1  col2
0     4     6
1     2     3
2     5     5
Run Code Online (Sandbox Code Playgroud)

所以也许df2.set_diff(df1)会产生这样的东西:

   col1  col2
0     4     6
2     5     5
Run Code Online (Sandbox Code Playgroud)

但是,我不想依赖索引,因为在我的情况下,我必须处理具有不同索引的数据帧.

顺便说一下,我最初考虑过当前drop_duplicates()方法的扩展,但现在我意识到使用集合论属性的第二种方法通常会更有用.但是,这两种方法都解决了我当前的问题

谢谢!

python dataframe pandas

38
推荐指数
5
解决办法
4万
查看次数

如何在anaconda环境中安装Julia?

Anaconda的一个主要特点是它与博客中所述的语言无关:

您可以创建任何二进制依赖关系树的环境(不同版本的Python,R,Julia等).

最近我在Python中使用virtualenv转换为Anaconda,所以我很想在Anaconda环境中尝试Julia.但是,我找不到足够明确的说明来成功安装Julia.首先,我天真地尝试过conda create -n julia-test julia.显然,它没有用.然后我在binstar.org 找到了带有代码的Julia软件包(版本0.3)

conda install -c https://conda.binstar.org/wakari1 julia
Run Code Online (Sandbox Code Playgroud)

但是,我不想在特定虚拟环境之外安装Julia,因此我将其更改为:

conda create -n julia-test -c https://conda.binstar.org/wakari1 julia
Run Code Online (Sandbox Code Playgroud)

它没有抛出错误,但最终未能启动Julia解释器.

那么,在anaconda环境中安装Julia(0.2,最好是)的正确方法是什么?

UPDATE

截至2018年3月,Julia v0.6.1可用于conda-forge频道上的linux-64:

https://anaconda.org/conda-forge/julia

它已设置为在内部安装软件包<env_prefix>/share/julia/site,以保持与用户~/.julia用户主目录的隔离.

conda create -n julia -c conda-forge julia

julia anaconda conda

30
推荐指数
4
解决办法
2万
查看次数

IOPS(在Amazon EBS中)在实践中意味着什么?

我有一些应用程序所需的图像.有许多图像(50,000+)但总体尺寸很小(40 Mb).最初,我以为我会简单地使用S3,但上传速度很慢.作为一个临时解决方案,我想附上一个包含图像的EBS,这样就可以了.但是,阅读一下有关EBS通用(gp2)的内容,我注意到以下描述:

GP2是Amazon EC2实例的默认EBS卷类型.这些卷由固态驱动器(SSD)支持,适用于各种事务工作负载,包括开发/测试环境,低延迟交互式应用程序和启动卷.GP2旨在提供一位数的毫秒延迟,提供3 IOPS/GB的一致基准性能,最高可达10,000 IOPS,并且每卷可提供高达160 MB/s的吞吐量.

正是这3个IOPS/GB的数量令我担忧.这在实践中意味着什么?假设您需要为少量用户提供电子商务网站(例如,每分钟<10,000个请求),并且需要检索这些图像.亚马逊描述了如何衡量IOPS:

当小型I/O操作在物理上连续时,Amazon EBS会尝试将它们合并为单个I/O,直到最大大小.例如,对于SSD卷,单个1,024 KiB I/O操作将计为4个操作,而每个4 KiB的256个I/O操作将计为256个操作.

这是否真的意味着如果我想在一秒钟内检索50个10kB的图像,我需要50 IOPS并且很容易超过3 IOPS的基线?

更新:

感谢Mark B的建议,我能够使用S3上传我的文件.但是,我仍然想知道执行常见任务所需的IOPS量,例如运行数据库或为Web应用程序提供其他文件.我很高兴根据您的经验听取一些关于IOPS最小值的参考值.

amazon-s3 amazon-web-services

25
推荐指数
1
解决办法
2万
查看次数

如何在Webpack中使用树摇动?

我刚刚使用Angular 2(版本rc.2)app(带有Typescript)更新到webpack 2.1.0-beta.15,但我想知道如何使用树摇动功能.我读到它应该"开箱即用",但我仍然有一个1.7Mb的捆绑一个非常简单的应用程序,所以可能我做错了.

这是我到目前为止:

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

的package.json

{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "build": "webpack --progress",
    "build:prod": "webpack -p --progress --optimize-minimize",
    "postinstall": "typings install",
    "serve": "webpack-dev-server --inline --progress --output-public-path=/dist/"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.2",
    "@angular/compiler": "2.0.0-rc.2",
    "@angular/core": "2.0.0-rc.2",
    "@angular/forms": "0.1.0",
    "@angular/http": "2.0.0-rc.2",
    "@angular/platform-browser": "2.0.0-rc.2",
    "@angular/platform-browser-dynamic": "2.0.0-rc.2",
    "@angular/router": "2.0.0-rc.2",
    "@angular/router-deprecated": "2.0.0-rc.2",
    "@angular/upgrade": "2.0.0-rc.2",
    "angular-pipes": "1.4.0",
    "bootstrap": …
Run Code Online (Sandbox Code Playgroud)

bundle webpack angular

25
推荐指数
1
解决办法
6124
查看次数

pandas的转换不能对groupby输出进行排序

另一个熊猫问题.

阅读Wes Mckinney关于数据分析和熊猫的优秀书籍,我遇到了以下我认为应该起作用的事情:

假设我有一些关于提示的信息.

In [119]:

tips.head()
Out[119]:
total_bill  tip      sex     smoker    day   time    size  tip_pct
0    16.99   1.01    Female  False   Sun     Dinner  2   0.059447
1    10.34   1.66    Male    False   Sun     Dinner  3   0.160542
2    21.01   3.50    Male    False   Sun     Dinner  3   0.166587
3    23.68   3.31    Male    False   Sun     Dinner  2   0.139780
4    24.59   3.61    Female  False   Sun     Dinner  4   0.146808
Run Code Online (Sandbox Code Playgroud)

我想知道与总账单有关的五大提示,即分别tip_pct针对吸烟者和非吸烟者.这样可行:

def top(df, n=5, column='tip_pct'): 
    return df.sort_index(by=column)[-n:]

In [101]:

tips.groupby('smoker').apply(top)
Out[101]:
           total_bill   tip sex smoker  day time …
Run Code Online (Sandbox Code Playgroud)

python aggregate pandas

20
推荐指数
1
解决办法
1万
查看次数

Python中预准备语句和参数化查询之间的混淆

据我所知,预备语句(主要)是一个数据库功能,允许您将参数与使用此类参数的代码分开.例:

PREPARE fooplan (int, text, bool, numeric) AS
    INSERT INTO foo VALUES($1, $2, $3, $4);
EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);
Run Code Online (Sandbox Code Playgroud)

参数化查询替代手动字符串插值,因此不是这样做

cursor.execute("SELECT FROM tablename WHERE fieldname = %s" % value)
Run Code Online (Sandbox Code Playgroud)

我们可以做的

cursor.execute("SELECT FROM tablename WHERE fieldname = %s", [value])
Run Code Online (Sandbox Code Playgroud)

现在,似乎准备好的语句大部分都用在数据库语言中,参数化查询主要用于连接数据库的编程语言,尽管我已经看到了这个规则的例外.

问题在于询问预准备语句和参数化查询之间的区别会带来很多混乱.他们的目的无疑是相同的,但他们的方法似乎是截然不同的.然而,有消息表明两者都是相同的.MySQLdb和Psycopg2似乎支持参数化查询,但不支持预处理语句(例如,这里是MySQLdb和postgres驱动程序TODO列表或sqlalchemy 组中的这个答案).实际上,有一个实现psycopg2游标的要点,支持准备好的语句和关于它的最小解释.还有一个建议是在psycopg2中继承游标对象以手动提供准备好的语句.

我想得到以下问题的权威答案:

  • 预准备语句和参数化查询之间是否存在有意义的区别?这在实践中是否重要?如果使用参数化查询,是否需要担心预处理语句?

  • 如果存在差异,Python生态系统中预准备语句的当前状态是什么?哪些数据库适配器支持预处理语

python database sql-injection prepared-statement parameterized-query

20
推荐指数
2
解决办法
1万
查看次数

使用em的边距和填充

当1em应用于元素时,它采用浏览器的默认值(通常为16px)或其父级的font-size值,对吗?但是我注意到如果我margin-top: 1emh1元素中使用类似的东西(不使用重置样式表,因此,h1设置为font-size: 32px),则1em等于32px,即使其父元素设置为font-size: 16px.

但是,使用类似font-size的东西:100%; 解决了这个差异.

我错过了什么?

css margin em

18
推荐指数
2
解决办法
2万
查看次数

dateutil和pytz给出不同的结果

我有一个问题比较输出与dateutilpytz.我正在创建一个有意识的日期时间对象(UTC),然后转换为给定的时区,但我得到了不同的答案.我怀疑dateutil有时会给出错误的结果,因为它考虑到夏令时有问题(至少,我读过它的评论),但我找不到确认或修复该问题.这是代码:

import dateutil

u = dateutil.tz.tzutc()
date1 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u)
# 2010-05-02 11:10:00+00:00

u2 = dateutil.tz.gettz('America/Chicago')
date2 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u2)
# 2010-05-02 11:10:00-05:00


import pytz
u = pytz.timezone('UTC')
date1 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u)

# 2010-05-02 11:10:00+00:00
u2 = pytz.timezone('America/Chicago')
date2 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u2)

# 2010-05-02 11:10:00-06:00
Run Code Online (Sandbox Code Playgroud)

那么,这可能是什么问题?

更新:

我刚试过这个:

print u2.normalize(date1.astimezone(u2))
# 2010-05-02 06:10:00-05:00
Run Code Online (Sandbox Code Playgroud)

pytz需要normalize考虑DST吗?

更新2:

好像pytz和dateutil似乎没有给出America/Argentina/San_Luis的答案,但这有效:

import pytz, …
Run Code Online (Sandbox Code Playgroud)

python timezone datetime

16
推荐指数
1
解决办法
5552
查看次数

通过Mathematica上传到ifile.it

我想知道是否可以将文件从Mathematica上传到ifile.it.我已经看过ifile.it 的API,但是,我仍然不知道它是如何工作的.此外,我在Mathematica中看到的最接近的例子是" 使用Mathematica进行推特 ",但我不清楚,如何使用该示例中的GET请求.

提前致谢

wolfram-mathematica

13
推荐指数
1
解决办法
1128
查看次数