小编Dav*_*ick的帖子

有没有办法将 Python 程序编译为二进制并将其与 Scratch Dockerfile 一起使用?

我最近一直在研究 docker 镜像。我看到这个 docker 文档关于使用FROM scratch. 我想看看我能走多远,只是为了好玩。我用Python编程。该文档说将示例 C 程序编译为二进制文件,将其复制到容器中,然后运行它。在容器中,我无法运行python <program_file>.我看到了有关将 python 文件编译为二进制文件的堆栈交换帖子,这符合我们的测试用例。它提到使用pyinstaller. 因此,我在一个测试文件上运行它hello.py,该文件仅打印 Hello with pyinstaller hello.py,并且收到一堆有关构建项目的消息。好的。我可以通过运行“dist/hello”在本地计算机中运行二进制文件(这是帖子中提到的二进制程序。所以我编写了 Dockerfile 来复制该程序并运行它。我的 Dockerfile 是

FROM scratch

ADD dist/hello /
CMD ["./hello"]
Run Code Online (Sandbox Code Playgroud)

我运行docker build . -t "hello:1.0"然后docker run hello:1.0......我收到一条错误消息:

standard_init_linux.go:211: exec user process caused "no such file or directory"
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?我做错了什么?是否可以让 pyinstaller 编译一个二进制 python 项目(多个文件,而不仅仅是这个文件),然后使用临时映像来运行它。如果可能的话,有什么注意事项吗?

python docker

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

C 结构是否将其成员保存在连续的内存块中?

假设我的代码是:

typedef stuct {
  int x;
  double y;
  char z;
} Foo;
Run Code Online (Sandbox Code Playgroud)

xy以及z,在内存旁边对方?指针算术可以“迭代”它们吗?我的 C 生锈了,所以我不能完全正确地测试这个程序。这是我的完整代码。

#include <stdlib.h>
#include <stdio.h>

typedef struct {
  int x;
  double y;
  char z;
} Foo;


int main() {
  Foo *f = malloc(sizeof(Foo));
  f->x = 10;
  f->y = 30.0;
  f->z = 'c';
  // Pointer to iterate.
  for(int i = 0; i == sizeof(Foo); i++) {
    if (i == 0) {
      printf(*(f + i));
    }
    else if (i == (sizeof(int) + …
Run Code Online (Sandbox Code Playgroud)

c

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

pyinstaller 是否有像 gcc -static 这样的参数?

我有一个与此类似的问题:有没有办法将 Python 程序编译为二进制并将其与 Scratch Dockerfile 一起使用

在此页面中,我看到有人说 C 应用程序用-static.

所以我有一个新问题:是否pyinstaller有任何参数可以gcc -static让Python应用程序在Scratch Docker镜像中运行良好?

python pyinstaller docker

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

带有 FXMLLoader.load(getClass().getClassLoader().getResource("Login.fxml")) 的 JavaFX 错误;

我一生都无法弄清楚这段代码的问题。我在这里对许多类似的问题进行了研究,解决了目录是否正确、可能错误的函数调用等问题。

我希望有人可以帮助我。一切都在名为 loginapp 的应用程序中名为 login 的文件中。

这是 Login.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package login;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;


public class Login extends Application   {

    @Override
    public void start(Stage stage) throws Exception {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("Login.fxml"));
        Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("Login.fxml"));
        Scene scene = new Scene(root); …
Run Code Online (Sandbox Code Playgroud)

javafx

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

Python 的 splat 运算符……曾经是吗?

今天,我看到了 pyData 2017 的一个演示,演示者使用了 python 的 splat operator *。想象一下我的惊讶,因为在他使用该方法之前,我将其视为一个指针。我认为 Python 的 splat 运算符类似于省略号,... 不是吗?谷歌搜索对我来说没有任何结果。他们是在某个时候改变了它还是一直都这样*?如果他们确实改变了它,为什么?如果他们更改了它,是否存在实现差异和/或速度差异?

编辑:愤怒的评论者的“解包参数列表”。

python

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

标签 统计

python ×3

docker ×2

c ×1

javafx ×1

pyinstaller ×1