小编ara*_*lar的帖子

Atom上行号左边的红色箭头是什么?

红色箭头 - 在下面的截图中的第95和96行之间 - 是什么意思在GitHub的Atom编辑器上?

谢谢!

带有红色箭头的Atom的屏幕截图

atom-editor

37
推荐指数
1
解决办法
8075
查看次数

docker-compose:使用多个Dockerfiles进行多种服务

我正在使用docker-compose,我想为不同的服务构建步骤使用不同的Dockerfiles.该文件似乎表明放置不同Dockerfiles不同的目录中,但我想他们都在同一个(也许区分使用以下约定:Dockerfile.postgres,Dockerfile.main ...).这可能吗?

编辑:我有的场景包含这个docker-compose文件:

main:
  build: .
  volumes:
    - .:/code
  environment:
    - DEBUG=true

postgresdb:
  extends:
    file: docker-compose.yml
    service: main
  build: utils/sql/
  ports:
    - "5432"
  environment:
    - DEBUG=true
Run Code Online (Sandbox Code Playgroud)

postgresdbDockerfile 在哪里:

FROM postgres

# http://www.slideshare.net/tarkasteve/developerweek-2015-docker-tutorial
ADD make-db.sh /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

主要是:

FROM python:2.7

RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/

RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . /code/
Run Code Online (Sandbox Code Playgroud)

这现在可以正常工作,但我想postgresdb通过调用Python脚本扩展其Dockerfile,该脚本根据基于SQL Alchemy构建的模型在数据库中创建表(Python脚本将被称为python manage.py create_tables).我想将它添加到db的Dockerfile中,但是由于容器的隔离,我不能在那里使用SQL Alchemy,因为该图像是基于postgres图像而不是Python的,并且它不包含sqlalchemy包......

我能做什么?我尝试使用该main服务postgresdb …

docker fig docker-compose

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

docker-compose:访问postgres的shell(psql)

我正在尝试使用PostgreSQL的shell(psql)docker-compose,但是我遇到了一些困难...这是我的docker-compose文件:

main:
  build: .
  volumes:
    - .:/code
  links:
    - postgresdb
  environment:
    - DEBUG=true


postgresdb:
  build: utils/sql/
  ports:
    - "5432"
  environment:
    - DEBUG=true
Run Code Online (Sandbox Code Playgroud)

我试图访问psql通过该会main还有postgresdb服务,通过运行

docker-compose run postgresdb psql -h postgresdb -U docker mydatabase

但我得到的是psql: could not translate host name "postgresdb" to address: Name or service not known......我不明白,因为我postgresdb在数据库配置文件中用作主机,例如:

DB_ACCESS = {
    'drivername': 'postgres',
    # Name of docker-compose service
    'host': 'postgresdb',
    'port': '5432',
    'username': 'docker',
    'password': '', …
Run Code Online (Sandbox Code Playgroud)

postgresql docker docker-compose

11
推荐指数
4
解决办法
9564
查看次数

Java:什么是1d?

在Java上遇到以下表达式,我不知道"1d"是什么意思(r是一个整数).也有选择的多头,双打......它们是什么,他们用来做什么的?

double y = r / (Integer.MAX_VALUE + 1d);
Run Code Online (Sandbox Code Playgroud)

谢谢!

java double

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

wsgi nginx错误:连接到上游时权限被拒绝

关于这一点似乎有很多关于StackOverflow的问题,但遗憾的是没有任何对我有用.

我在nginx上获得了一个502坏网关,以及日志中的以下内容: connect() to ...myproject.sock failed (13: Permission denied) while connecting to upstream

我正在wsginginxubuntu,我一直在关注,从数字海洋本指南.我显然已经wsgi正确配置uwsgi -s myproject.sock --http 0.0.0.0:8000 --module app --callable app,但我一直得到nginx权限被拒绝错误,我不明白为什么:

跨越未来之后这个问题,并且这另外一个,我改变了.ini文件,并添加了chown-socket,chmod-socket,uidgid参数(还尝试只设置了前两个,或,和几个不同的权限设置--and即使是最宽容的没有工作).

这个看起来很有希望,但我不相信selinux是安装在我的Ubuntu上(运行sudo apt-get remove selinux给出"Package'selinux'没有安装,所以没有删除"并且find / -name "selinux"没有显示任何内容).为了以防万一,我尝试了这篇文章推荐的内容.卸载apparmor(sudo apt-get install apparmor)也无法正常工作.

每次我进行更改时,我都会运行sudo service nginx restart,但我只看到502网关错误(当我读取日志时,权限被拒绝错误). …

sockets ubuntu wsgi nginx uwsgi

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

为什么在Matlab中使用卷积矩阵而不是conv()函数?

我知道如果我们有两个向量-例如X和Y,我们可以使用在Matlab中计算它们的卷积Z = conv(X, Y)如在Mathworks.com上所述,还有另一种方法可以通过卷积矩阵来实现:

n = length(Y);
Z = convmtx(X,n)*Y;
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 如果可以依靠,为什么要使用卷积矩阵conv(X, Y)
  2. 引用的文档说前一种方法更有效,但不幸的是他们没有解释原因。是否主要是由于第二种方法需要计算和分配第二种方法,length(Y)还是有更多的方法(矩阵乘法比卷积运算等效率更高)?

谢谢!

编辑:我也联系了Mathworks.com,我想分享一下他们的答案:

您可以亲眼看到,如果运行此代码,conv确实会更有效。

tfs = 0; tsl = 0;
Nt = 20; sh = 500;
for kj = 1:Nt
    q = randn(10000,1); h = randn(sh,1);
    tic
    fst = conv(q,h);
    tfs = tfs+toc;
    tic
    slo = convmtx(q,sh); slo = slo*h;
    tsl = tsl+toc;
end
tfs = tfs/Nt; tsl = tsl/Nt; tsl/tfs
Run Code Online (Sandbox Code Playgroud)

您可以看到conv的速度提高了大约120倍。有几种原因,但最重要的可能是conv是(几乎)内置编译函数,而convmtx是在MATLAB语言,并在调用时进行解释(即,对其进行解析,进行类型检查等)。此外,即使您确实只需要一个副本,当您调用convmtx时,您也会创建输入数组的许多副本。

matlab matrix convolution

5
推荐指数
1
解决办法
3272
查看次数

是否可以使用预定义的排序机制在Python中初始化一个空的OrderedDict?

我可以找到的所有示例(在文档中等)通过将数据传递给构造函数来定义OrderedDicts.来自文档:

# regular unsorted dictionary
d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}

# dictionary sorted by key
OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
Run Code Online (Sandbox Code Playgroud)

另一方面,可以通过不向构造函数提供参数来初始化OrderedDict,这导致它保留添加键,值对的顺序.

我正在寻找一种类似于以下的构造,除了没有"d.items()".从本质上讲,我要求它记住一个机制而不提供一个例子,这可能听起来很疯狂.我唯一选择通过在单个项目中提供初始"d"(下方)来"破解"这个,还是有更好的方法?

OrderedDict(sorted(d.items(), key=lambda t: t[0]))
Run Code Online (Sandbox Code Playgroud)

谢谢!

python ordereddictionary python-2.7 python-3.x

5
推荐指数
1
解决办法
4372
查看次数

Docker:使用带无头Selenium Chromedriver的容器

我正在尝试将peroumal1的"docker-chrome-selenium"容器与使用Selenium的抓取代码链接到另一个容器.

他将他的容器暴露在4444端口(Selenium的默认容器),但是我无法从我的刮刀容器中访问它.这是我的docker-compose档案:

chromedriver:
  image: eperoumalnaik/docker-chrome-selenium:latest

scraper:
  build: .
  command: python manage.py scrapy crawl general_course_content
  volumes:
    - .:/code
  ports:
    - "8000:8000"
  links:
    - chromedriver
Run Code Online (Sandbox Code Playgroud)

这是我的刮刀Dockerfile:

FROM python:2.7

RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/

RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . /code/
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从我的代码中使用Selenium时(见下文),我收到以下错误消息:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/selenium/wiki/ChromeDriver.在Mac OS X上,当我没有使用Docker时,我通过下载chromedriver二进制文件并将其添加到路径来修复此问题,但我不知道该怎么做.

driver = …
Run Code Online (Sandbox Code Playgroud)

python selenium selenium-chromedriver docker docker-compose

5
推荐指数
1
解决办法
6264
查看次数

继承自列表中解压缩的类

假设我在Python(A, B, C)中有一个类对象列表,我想在构建类时继承它们D,例如:

class A(object):
    pass

class B(object):
    pass

class C(object):
    pass


classes = [A, B, C]

class D(*classes):
    pass
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我这样做时,我遇到语法错误.除了通过写作,我还能怎样完成它class D(A, B, C)?(在我的实际场景中有三个以上的课程)

python oop inheritance

5
推荐指数
1
解决办法
85
查看次数

使用 Docker Compose 引用服务

我在从我的“主”( ) 服务调用某些 Docker Compose 服务中应该定义的内容时遇到问题web。我有以下docker-compose.yml文件:

version: '2'

services:
 db:
   image: postgres
   volumes:
    - postgres-db-volume:/data/postgres
 pdftk:
   image: mnuessler/pdftk
   volumes:
    - /tmp/manager:/work
 ffmpeg:
   image: jrottenberg/ffmpeg
   volumes:
    - /tmp/manager:/files
 web:
   build: .
   command: python manage.py runserver 0.0.0.0:8000
   volumes:
     - .:/code
     - /tmp/manager:/files
   ports:
     - "8000:8000"
   depends_on:
     - db
     - pdftk
     - ffmpeg

volumes:
   postgres-db-volume:
Run Code Online (Sandbox Code Playgroud)

我可以完美地使用dbfrom web,但不幸的是不能使用pdftkor (这些只是我运行shellffmpeg时未定义的命令行实用程序):web

manager$ docker-compose run web bash
Starting manager_ffmpeg_1
Starting manager_pdftk_1
root@16e4b755172d:/code# pdftk
bash: pdftk: …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

5
推荐指数
1
解决办法
1449
查看次数