有没有办法在不从 .py 脚本导入任何内容的情况下执行二进制文件?

有没有办法在不从 .py 脚本导入任何内容的情况下执行二进制文件?

首先,我在 ubuntu-16.04 中使用以下命令创建了 python 脚本的二进制文件:

cython3 --embed -o hello.c hello.py

gcc -Os -I /usr/include/python3.5m -o hello hello.c -lpython3.5m -lpthread -lm -lutil -ldl

但有一些问题我需要讨论:

1-如果我删除 python 脚本,则二进制文件会出现导入错误(从 .py 文件导入)。

2-如果我不删除 .py 文件,那么所有二进制文件都可以完美运行(这完全使二进制文件的创建变得毫无意义)

现在我知道问题是运行文件是二进制文件,并且二进制文件中导入的一些常量和函数来自 .py 脚本。

我的项目代码流程是:

**Main folder**
  **Scripts1 Folder**
        Script1.py
        Script2.py
        Script3.py & many other .py scripts...
        **Scrip1.1 Folder**
               Script1_1.py
               Script1_2.py & many .py scripts
  **Script2 Folder**
        Script1.py
        Script2.py & many other .py scripts

有没有什么方法可以执行在创建时包含所有导入常量/函数的二进制文件?

有没有什么方法可以使用 gcc 从 .py 的 .c 代码生成二进制文件,该二进制文件可以在没有任何 .py 脚本的情况下执行?

而且从 .py 脚本导入也不会有问题。

例子:

从脚本1导入函数1

从 script1_2 导入常量

实际上问题是这个导入是从二进制文件中的 python 脚本导入的,我希望从另一个二进制文件中以二进制导入。当我从文件夹中删除 .py 脚本时,错误是“导入错误:无法从 script1 导入 function1。没有这样的文件 script1.py”

提前致谢。

相关内容