小编Mar*_*ins的帖子

如何在程序包安装期间测试Python是否从virtualenv运行

我有一个Python软件,其中包括配置文件和联机帮助页.要安装这些,我在我的内容中有以下行setup.py(如http://docs.python.org/2/distutils/setupscript.html#installing-additional-files中所述):

data_files = [('/etc/foo', ['foo.conf']), ('/usr/share/man/man1', ['foo.1'])]
Run Code Online (Sandbox Code Playgroud)

当我想以root身份安装软件时,这很好用python setup.py install,但当然在virtualenv中失败,因为不允许用户写入/etc/usr/share/man.

解决这个问题的最佳做法是什么?检查VIRTUAL_ENV当前环境,根本不安装这些文件?该软件将foo.conf在本地目录中查找,因此应该没问题.用户会错过该联机帮助页,但无论如何都没有理智的安装方式,因为man在virtualenv附近的任何地方都不会找到它.

python virtualenv

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

我可以用libuv做自定义事件吗?

我想尝试libuv,但我需要能够将我的网络线程中的事件发送到我的主线程.我猜libuv会有自定义事件来处理这类事情,但我找不到它们.

有任何想法吗?谢谢!

node.js libuv

4
推荐指数
1
解决办法
1500
查看次数

正则表达式在JavaScript中没有按预期工作

我写了以下正则表达式:

(https?:\/\/)?([da-z\.-]+)\.([a-z]{2,6})(\/(\w|-)*)*\/?
Run Code Online (Sandbox Code Playgroud)

它的行为可以在这里看到:http://gskinner.com/RegExr/?34b8m

我写了以下JavaScript代码:

var urlexp = new RegExp(
    '^(https?:\/\/)?([da-z\.-]+)\.([a-z]{2,6})(\/(\w|-)*)*\/?$', 'gi'
);
document.write(urlexp.test("blaaa"))
Run Code Online (Sandbox Code Playgroud)

true即使正则表达式不允许单个单词有效,它也会返回.

我究竟做错了什么?

javascript regex

4
推荐指数
1
解决办法
2562
查看次数

Terraform 0.12嵌套循环

我正在尝试使用Terraform 0.12的新功能来实现嵌套循环,以便遍历AWS IAM用户,每个用户都可以附加一个或多个策略。用于表示此列表的变量的类型为map(list(string)),看起来像这样:

{
  "user 1" = [ "policy1", "policy2" ],
  "user 2" = [ "policy1" ]
}
Run Code Online (Sandbox Code Playgroud)

通过可以轻松地创建用户列表keys(),但是由于Terraform当前没有嵌套循环资源创建的机制,因此策略附件必须以独立于每个用户的单个循环的形式发生。因此,我正在尝试从地图输入中构建一个user:policy关联列表,该列表看起来像基于上面的示例:

[
  [ "user1", "policy1" ],
  [ "user1", "policy2" ],
  [ "user2", "policy1" ]
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试构造该列表并将其存储在本地变量中,如下所示,var.iam-user-policy-map输入映射在哪里:

locals {
  ...
  association-list = [
    for user in keys(var.iam-user-policy-map):
    [
      for policy in var.iam-user-policy-map[user]:
      [user, policy]
    ]
  ]
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,尝试访问该嵌套列表中的值时出现错误。我正在尝试使用引用local.association-list[count.index][0]和策略访问关联的用户部分local.association-list[count.index][1],但是在运行时terraform plan会出错:

Error: Incorrect attribute value type

  on main.tf line 27, in resource "aws_iam_user_policy_attachment" "test-attach": …
Run Code Online (Sandbox Code Playgroud)

nested-loops terraform

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

python try语句的语法无效

在我的脚本中,我有一个大的while:try:loop.在此,我想增加一个图片已成功从我的相机下载和调整的情况下,一些指针,这里是我的代码看起来像我的大python脚本中:

import os.path
try os.path.isfile('/home/pi/CompPictures' + picturenumber + '.JPG'):
    os.system('sudo rm /home/pi/Pictures/IMG_0001.JPG')
    os.system('sudo rm /home/pi/output.bin')
    picturenumber = int(picturenumber))+1
except:
    pass
Run Code Online (Sandbox Code Playgroud)

picturenumber包含一个字符串'1'开始然后会增加.

我只想要这个运行一个.所以基本上,我通过我的大码连续运行,然后通过大循环每次扫描,我要检查一次该try语句,如果该文件存在,删除一些文件,并增加了指针.

我收到以下错误.

  File "pijob.py", line 210
    try os.path.isfile('/home/pi/CompPictures' + picturenumber + '.JPG'):
         ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

非常新的python ...所以希望这不是一个简单的错误:(

python

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

Terraform aws_iam_role_policy 中的 JSON 语法错误

因此,通过 Terraform,我创建了一个 IAM 策略并将其附加到一个角色。我目前正在运行:

Terraform v0.12.16
provider.aws v2.40.0
provider.template v2.1.2
Run Code Online (Sandbox Code Playgroud)

执行代码时,我可以毫无问题地初始化 terraform。运行 terraform plan 时,出现以下错误:

Error: "policy" contains an invalid JSON: invalid character '}' looking for beginning of value

  on ec2-iam.tf line 8, in resource "aws_iam_role_policy" "s3_ec2_policy":
   8: resource "aws_iam_role_policy" "s3_ec2_policy" {
Run Code Online (Sandbox Code Playgroud)

我陷入了这个错误。任何意见将是有益的。下面是我的代码:

 data "template_file" "s3_web_policy" {
  template = file("scripts/iam/web-ec2-policy.json")
  vars = {
    s3_bucket_arn = "arn:aws:s3:::${var.my_app_s3_bucket}/*"
  }
}

resource "aws_iam_role_policy" "s3_ec2_policy" {
  name = "s3_ec2_policy"
  role = aws_iam_role.s3_ec2_role.id

  policy = data.template_file.s3_web_policy.rendered
}

resource "aws_iam_role" "s3_ec2_role" {
  name = "s3_ec2_role"

  assume_role_policy …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform terraform-template-file terraform-provider-aws

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

如何在 Django 视图中解析 JSON

我将一些 JSON 发布到视图中。我现在想解析数据并将其添加到我的数据库中。

我需要的属性name,并theme在阵列上和迭代pages。我的 JSON 如下:

{
    "name": "xaAX",
    "logo": "",
    "theme": "b",
    "fullSiteLink": "http://www.hello.com",
    "pages": [
        {
            "id": "1364484811734",
            "name": "Page Name",
            "type": "basic",
            "components": {
                "img": "",
                "text": ""
            }
        },

        {
            "name": "Twitter",
            "type": "twitter",
            "components": {
                "twitter": {
                    "twitter-username": "zzzz"
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的:

def smartpage_create_ajax(request):

    if request.POST:

         # get stuff and loop over each page?

       return HttpResponse('done')
Run Code Online (Sandbox Code Playgroud)

python json

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

是否值得在Chrome扩展程序中压缩JavaScript文件?

是否有任何理由通过chrome扩展程序gzip本地加载的大型js文件?它会增加还是降低负载速度?为什么?

Google建议使用Gzip压缩文件.但这只是在通过网络传输文件时才有意义吗?或者在本地处理gzip压缩文件也更快?

javascript gzip google-chrome-extension

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

Terraform:如何从对象列表创建 API 网关端点和方法?

我想创建一个 terraform (v0.12+) 模块,该模块输出一个带有 Lambda 集成的 AWS API 网关。我不太明白如何(或者甚至可能)遍历映射列表以动态输出资源。

用户应该能够像这样实例化模块:

module "api_gateway" {
  source = "./apig"

  endpoints = [
    {
      path = "example1"
      method = "GET"
      lambda = "some.lambda.reference"
    },
    {
      path = "example1"
      method = "POST"
      lambda = "some.lambda.reference"
    },
    {
      path = "example2"
      method = "GET"
      lambda = "another.lambda.reference"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

endpoints界面上,我想输出三个资源:

  1. aws_api_gateway_resource哪里path_part = endpoint[i].path
  2. aws_api_gateway_method哪里http_method = endpoint[i].method
  3. aws_api_gateway_integration,需要一个参考 endpoint[i].lambda,等

Terraform 的for_each属性似乎不足以处理这个问题。我知道 Terraform 也支持 …

terraform aws-api-gateway terraform-provider-aws

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

在 lambda_module 的预构建 ZIP 文件上计算源代码哈希?

我已经编写了一个 terraform 模块来创建一个 Lambda,但我无法弄清楚如何在预构建的 ZIP 文件上计算 source_code_hash。这将在管道中,因此每次都会构建 ZIP 文件,并且在我到达 terraform 步骤之前可能会有所不同。
我正在使用 gulp 构建 ZIP 文件(这是一个 NodeJS 应用程序)并假设它是在目录 build/myLambda.zip 中预先构建的

基本上我想这样做。文件名是一个 terraform 变量,我希望 source_code_hash 计算必须引用该文件。

module my_lambda {
  filename = "${var.my_zip_file}"
}
Run Code Online (Sandbox Code Playgroud)

该模块的相关部分是:

resource "aws_lambda_function" "lambda" {
   filename            = "${var.filename}"
   source_code_hash    = "${filebase64sha256(file("${var.filename}"))}"
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行 terraform plan 时,出现此错误:

Error: Error in function call

  on modules\lambda\main.tf line 16, in resource "aws_lambda_function" "lambda":
  16:     source_code_hash    = "${filebase64sha256(file("${var.filename}"))}"
    |----------------
    | var.filename is "build/myLambda.zip"

Call to function "file" failed: contents of
build/myLambda.zip are not …
Run Code Online (Sandbox Code Playgroud)

terraform terraform-provider-aws

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