【发布时间】:2020-01-20 05:07:32
【问题描述】:
我正在尝试为一个名为 python_program.py 的程序创建一个 python 生成文件,该程序创建一个名为“python_program”的可执行文件。我创建了一个 makefile,当在 ubuntu 终端中输入 make 时,它会运行并输出 python_program.py 的内容。但是,它不会在 makefile 和程序所在的文件夹中创建可执行文件“python_program”。我不确定我应该在哪里以及应该为要创建的可执行文件编写什么。有人可以指导我为什么我的代码没有创建这个可执行文件“python_program”。我的代码如下:
#!/usr/bin/env python
all: python_program.py
chmod +x python_program.py
./python_program.py
这是作业:
使用文件
python_program.py创建一个名为python_program的可执行文件。假设您的 PythonMakefile与python_program.py位于同一目录中,因此,当您在该目录中运行make时,您的 PythonMakefile将创建一个python_program可执行文件。当python_program.py更改时,您的 Python Makefile 必须重新创建python_program。有几种方法可以解决这个问题(因为没有什么要编译的)。例如,您可以利用 shebang 功能,该功能允许执行可以解释的文件。这要求文件是可执行的 (chmod +x filename)。
【问题讨论】:
-
您似乎认为 Python 是一种编译语言,就像 C 一样。事实并非如此。
-
不需要生成文件。只需使用您的编辑器。将
#!/usr/bin/env python3或您的本地等效项作为文件python_program.py的第一行。确保您没有使用 Windows 编辑器。 -
另外,如果您希望 shebangified 文件没有
.py扩展名,那么答案也很简单:重命名它。或将其复制到想要的名称。或者一开始就不要给它这样的扩展。 -
这是一个复杂的任务。无论如何,听起来你应该取出第一行,然后将 Makefile 的命令部分更改为:
cp python_program.py python_program && chmod +x python_program && ./python_program -
@binarycoffee356 发布的答案比我给出的更笼统。随意尝试并将其标记为答案。