小编x89*_*x89的帖子

无法更新 terraform 版本

我的provider.tf 文件中已经有最新版本:

  required_providers {
    archive = {
      source  = "hashicorp/archive"
      version = "2.2.0"
    }
    aws     = {
      source  = "hashicorp/aws"
      version = "3.72.0"
    }
  }
Run Code Online (Sandbox Code Playgroud)

然而,当我检查terraform version我的终端时,我得到了这个:

Terraform v1.0.7
on darwin_amd64
+ provider registry.terraform.io/hashicorp/archive v2.2.0
+ provider registry.terraform.io/hashicorp/aws v3.72.0

Your version of Terraform is out of date! The latest version
is 1.1.4. You can update by downloading from https://www.terraform.io/downloads.html
Run Code Online (Sandbox Code Playgroud)

我已经尝试过terraform init -upgrade,但这也没有什么区别。我还从网站手动下载了 terraform 的新版本,但我的终端仍然显示 1.0.7。

由于旧的 Terraform 版本,我面临其他错误。如何使用终端更新到最新版本?

version terraform terraform-provider-aws hashicorp

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

DataFrame 对象没有属性 select

在 palantir Foundry 中,我试图从数据集中读取所有 xml 文件。然后,在 for 循环中,我解析 xml 文件。

直到倒数第二行,代码运行良好,没有错误。

from transforms.api import transform, Input, Output
from transforms.verbs.dataframes import sanitize_schema_for_parquet
from bs4 import BeautifulSoup
import pandas as pd
import lxml

@transform(
    output=Output("/Spring/xx/datasets/mydataset2"),
    source_df=Input("ri.foundry.main.dataset.123"),
)

def read_xml(ctx, source_df, output):
    df = pd.DataFrame()
    filesystem = source_df.filesystem()
    hadoop_path = filesystem.hadoop_path
    files = [f"{hadoop_path}/{f.path}" for f in filesystem.ls()]
    for i in files:
        with open(i, 'r') as f:
            file = f.read() 
        soup = BeautifulSoup(file,'xml')
        data = []
        for e in soup.select('offer'):
            data.append({
            'meldezeitraum': e.find_previous('data').get('meldezeitraum'), …
Run Code Online (Sandbox Code Playgroud)

python pandas pyspark palantir-foundry foundry-code-repositories

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

C 语言奎因程序示例

在我的课程幻灯片中,我有这个例子,但没有太多解释:

char*f="char*f=%c%s%c;main(){printf(f,34,f,34,10);}%c";main(){printf(f,34,f,34,10);}
Run Code Online (Sandbox Code Playgroud)

我理解quine 程序的一般含义,但我不太明白上面的代码中发生了什么。这是我运行它时得到的输出:

char*f="char*f=%c%s%c;main(){printf(f,34,f,34,10);}%c";main(){printf(f,34,f,34,10);}
Run Code Online (Sandbox Code Playgroud)

但它如何复制自己的代码呢?我真的不明白输出是如何产生的。

c quine

0
推荐指数
1
解决办法
3220
查看次数

使用 Fork() 创建进程

在运行以下代码时:

#include <stdio.h>
#include <unistd.h>
static int x = 0;
int main(int argc, char *argv[])
{
    pid_t p = getpid();
    fork();
    x++;

    if (! fork()) {
      x++;
      if (fork()) {
          x++;
      }
    }

    printf("p%d: x = %d\n", getpid() - p, x);
    sleep(60);
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

p0: x = 1
p1: x = 1
p2: x = 3
p3: x = 3
p4: x = 2
p5: x = 2
Run Code Online (Sandbox Code Playgroud)

我不太明白这些值是如何以及在哪里增加的。的原始处理(P0)执行main()函数。第一个 fork() 创建一个 子进程 (p1)。然后,p0 和 p1 …

c unix linux fork system-calls

-1
推荐指数
1
解决办法
165
查看次数