小编Jam*_*iew的帖子

OrderedDict会在Python 3.7中变得多余吗?

Python 3.7更改日志:

dict对象的插入顺序保存性质已被声明为Python语言规范的官方部分.

这是否意味着OrderedDict会变得多余?我能想到的唯一用途是保持与旧版本Python的向后兼容性,这些版本不保留普通字典的插入顺序.

python dictionary python-3.x python-3.7 ordereddict

55
推荐指数
1
解决办法
4746
查看次数

在requirements.txt中,代字号等于(〜=)是什么意思?

requirements.txt我正在使用的Python库中,其中一个要求指定如下:

mock-django~=0.6.10
Run Code Online (Sandbox Code Playgroud)

什么~=意思?

python requirements.txt

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

在 Mac M1 上为目标 x86_64 linux 编译 Rust

我正在尝试在我的 M1 Mac 上为 Linux 的 x86_64 目标编译 Rust 代码。我使用 Docker 来实现这一点。

我的 Dockerfile:

FROM rust:latest AS builder

RUN rustup install stable-x86_64-unknown-linux-musl

RUN rustup target add x86_64-unknown-linux-musl
RUN apt -y update
RUN apt install -y musl-tools musl-dev
RUN apt-get install -y build-essential
RUN apt install -y gcc-x86-64-linux-gnu

ADD ./cargo ./cargo/
WORKDIR /cargo

ENV RUSTFLAGS='-C linker=x86_64-linux-gnu-gcc'
ENV CC='gcc'
ENV CC_x86_64_unknown_linux_musl=gcc-x86-64-linux-gnu
ENV CC_x86_64-unknown-linux-musl=gcc-x86-64-linux-gnu

RUN cargo build --target x86_64-unknown-linux-musl --release
Run Code Online (Sandbox Code Playgroud)

但我会得到错误

发生错误:找不到工具。是否已gcc-x86-64-linux-gnu安装?

我认为应该安装它,因为我安装了它apt install -y gcc-x86-64-linux-gnu

有人知道为什么会发生这种情况吗?


完整输出:

docker …

linux cross-compiling rust docker apple-m1

15
推荐指数
2
解决办法
8815
查看次数

在生产中运行Docker Compose堆栈的推荐方法?

我有几个compose文件(docker-compose.yml)描述了一个简单的Django应用程序(五个容器,三个图像).

我想在生产中运行这个堆栈 - 让整个堆栈在启动时开始,并使容器重新启动或在它们崩溃时重新创建.没有我关心的任何卷,容器不会处于任何重要状态,可以随意回收.

我没有找到很多关于在生产中以这种方式使用docker-compose的信息.该文档很有帮助,但没有提到有关启动启动的任何内容,我使用的是亚马逊Linux,因此(目前)不能访问Docker Machine.我习惯使用supervisord来监督进程并确保它们在启动时启动,但我不认为这是使用Docker容器的方法,因为它们最终会被Docker守护进程监控?

作为一个简单的开始,我正在考虑将restart: always我的所有服务放在一起,并docker-compose up -d在启动时创建一个init脚本.是否有建议的方法以稳健的方式管理生产中的docker-compose堆栈?

编辑:我正在寻找一种"简单"的方式,docker-compose up以一种强大的方式运行相当于我的容器堆栈.我事先知道堆栈中声明的所有容器都可以驻留在同一台机器上; 在这种情况下,我不需要在多个实例中从同一堆栈中编排容器,但这也有助于了解.

docker docker-compose devops

8
推荐指数
1
解决办法
2197
查看次数

调试"jOOQ代码生成工具的错误配置"

我正在尝试跟随jOOQ教程.我在第3步(代码生成),但想使用Maven进行代码生成步骤.

这是我的内容pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.hiew</groupId>
    <artifactId>jooq-tutorial</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.jooq</groupId>
            <artifactId>jooq</artifactId>
            <version>3.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-meta</artifactId>
            <version>3.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen</artifactId>
            <version>3.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>1.1.7</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <!-- Specify the maven code generator plugin -->
                <!-- Use org.jooq            for the Open Source Edition
                         org.jooq.pro        for commercial editions,
                         org.jooq.pro-java-6 for commercial editions with Java 6 support,
                         org.jooq.trial      for the free trial edition

                     Note: Only the …
Run Code Online (Sandbox Code Playgroud)

code-generation maven jooq

6
推荐指数
1
解决办法
1373
查看次数

Pycharm / IntelliJ显示pytest的覆盖率为0%,即使生成了覆盖率

我有一个Python项目和一个tests任务,设置为pytest从项目的工作目录运行。

在此处输入图片说明

这样做Run 'tests' with coverageRun菜单中成功运行的测试,并在控制台结果显示,覆盖测量-例如,53%盖mws.py

在此处输入图片说明

对于所有文件,自动应用的覆盖率(如右图所示)为0%,我不确定为什么。我正在使用IntelliJ 2017.2.2 EAP。

注意:有一个相关五岁的问题在这里,但最精彩的解决方案有不适用。在这种情况下,结果控制台中没有错误消息。

python intellij-idea coverage.py pytest pycharm

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

有没有办法显示 Go 包的依赖关系图?

例如,给定一个A依赖于 packageB和 package 的包C,其中 packageC也依赖于 package D- 有没有办法输出这些信息?(使用销售工具或其他方式)

vendor.yaml通过输出govend不包括传递相关信息-无论是否Gopkg.toml通过输出文件dep从我所看到的。go.modGolang 1.11 的 mod 生成的文件确实将一些依赖项注释为// indirect- 但它没有用任何关于它们通过哪个依赖项被拉入的信息来注释依赖项。

go dependency-management

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

当包含另一个URLconf时,为什么不能仅传递`app_name`关键字arg?

在标准的urls.py一个Django应用程序的,如果我通过一个app_name没有namespaceinclude()呼叫,象下面这样:

urlpatterns = [
    # ...
    url(r'^', include('foo.urls', app_name='foo')),
    # ...
]
Run Code Online (Sandbox Code Playgroud)

击中包含的网址之一时,出现如下错误。

ValueError: Must specify a namespace if specifying app_name.

因此有必要做:

urlpatterns = [
    # ...
    url(r'^', include('foo.urls', namespace='foo-urls', app_name='foo')),
    # ...
]
Run Code Online (Sandbox Code Playgroud)

我看不到两者之间的硬性依赖。为什么必须指定一个namespace以便能够指定一个app_name

django

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

如何使用Terraform在我的Google Compute Instance上公开额外的端口?

我有一些Terraform代码定义的Google Compute Instance.

provider "google" {
  credentials = "${file("auth.json")}"
  project     = "aqueous-depth-189023"
  region      = "europe-west2"
}

resource "google_project" "website" {
  name = "Website"
  project_id = "aqueous-depth-189023"
}

resource "google_compute_instance" "default" {
  name         = "website"
  machine_type = "n1-standard-1"
  zone         = "europe-west1-b"

  network_interface {
    network = "default"

    access_config {
      // Ephemeral IP
    }
  }

  metadata {
    sshKeys = "james:${file("website.pem.pub")}"
  }

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-8"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,Google仅为Google Compute Instances提供端口22和其他一些内容.我是否可以更新我的Terraform代码以实现暴露端口80和其他一些端口,而无需使用Web控制台?我需要添加或编辑哪些Terraform资源?

google-compute-engine terraform

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

为什么这个树行走函数会死锁?

我正在通过Go来刷新我的记忆,并且在等效二叉树练习中绊倒了。我已经编写了一些代码来遍历看起来应该可以工作的二叉树。

package main

import (
    "golang.org/x/tour/tree"
    "fmt"
)

// Walk walks the tree t sending all values
// from the tree to the channel ch.
func Walk(t *tree.Tree, ch chan int) {
    if t == nil {
        return
    }
    ch <- t.Value
    Walk(t.Left, ch)
    Walk(t.Right, ch)
}

func main() {
    ch := make(chan int, 10)
    go Walk(tree.New(3), ch)
    for v := range ch {
        fmt.Printf("%q", v)
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我收到以下错误:

'\x1e''\x0f''\t''\x03''\x06''\f''\x15''\x12''\x1b''\x18'fatal error: all goroutines are asleep - …
Run Code Online (Sandbox Code Playgroud)

tree go

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