Создание файла Python Makefile, который создает исполняемый файл в той же папке

Создание файла Python Makefile, который создает исполняемый файл в той же папке

20.01.2020 08:07:32 Просмотров 50 Источник

Я пытаюсь сделать python makefile для программы под названием python_program.py это создает исполняемый файл под названием "python_program". Я создал файл makefile, который, когда make вводится в терминал ubuntu, запускается и выводит содержимое python_program.py однако он не создает исполняемый файл "python_program" в папке, где находятся файл makefile и программа. Я не уверен, где и что я должен написать для создания исполняемого файла. Не мог бы кто-нибудь подсказать мне, почему мой код не создает этот исполняемый файл "python_program". Код у меня такой::

#!/usr/bin/env python
all: python_program.py
        chmod +x python_program.py
        ./python_program.py

Вот вам задание.:

Используйте файл python_program.pyдля создания исполняемого файла python_program. Предположим, что ваш Python Makefileнаходится в том же каталоге, python_program.pyи python_program.py , и поэтому, когда вы запускаете makeв этом каталоге, ваш Python Makefileсоздаст python_programкогда python_program.pyперемены. Есть несколько способов подойти к этому (так как нечего компилировать). Например, вы можете воспользоваться функциональностью shebang, которая позволяет выполнять файл, который может быть интерпретирован. Для этого требуется, чтобы файл был исполняемым ( python_program.py).

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772446_59817264
Вы, кажется, предполагаете, что Python-это компилируемый язык, как и C. Это не так.
https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772468_59817264
@tripleee я знаю, что он интерпретируется, но мне сказали использовать shebang, который позволяет файл, который может быть интерпретирован, быть выполнен
https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772559_59817264
Я бы сделал это, но это для задания, и я должен представить файл makefile для этой программы автографисту. Я представил то, что у меня есть сейчас, и это не удается, потому что он не создает исполняемый файл "python_program", но он выводит правильное содержимое для двух тестовых случаев.
https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772639_59817264
На самом деле мы не можем вам помочь, потому что в вашем вопросе есть некоторые фундаментальные заблуждения. Вы можете неверно истолковать требования задания и, таким образом, задать вопрос, который не имеет смысла. Но поскольку у нас нет требований к назначению, мы не можем помочь вам интерпретировать его.
https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772674_59817264
Требования следующие: используйте файл python_program.py для создания исполняемого файла python_program. Предположим, что ваш Python Makefile находится в том же каталоге, что и python_program.py, и поэтому, когда вы запускаете make в этом каталоге, ваш Python Makefile создаст исполняемый файл python_program. Ваш Python Makefile должен воссоздать python_program, когда python_program.py перемены. Есть несколько способов подойти к этому (так как нечего компилировать). Например, вы можете воспользоваться функциональностью shebang), которая позволяет выполнять файл, который может быть интерпретирован
https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772684_59817264
Часть вторая, потому что закончились символы: это требует, чтобы файл был исполняемым (chmod +x filename).
https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772942_59817264
@kaylum большое спасибо! Это прекрасно решило проблему. Как я могу выбрать ваш ответ как лучший, если рядом с ним нет галочки для нажатия?
https://stackoverflow.com/questions/59817264/creating-a-python-makefile-that-creates-an-executable-filer-within-the-same-fold#comment105772967_59817264
@binarycoffee356 был опубликован ответ, который является более общим, чем то, что я дал. Не стесняйтесь попробовать это и отметьте это как ответ.

Ответы - Создание файла Python Makefile, который создает исполняемый файл в той же папке / Creating a Python Makefile That Creates an Executable Filer Within The Same Folder

Является ответом!
tripleee

20.01.2020 08:23:12

Вы действительно не хотите и не нуждаетесь Makefileдля этого. В Unix любой текстовый файл, содержащий код на интерпретируемом языке, может быть сценарием. Shebang должен быть самой первой строкой самого файла скрипта , а затем файл должен быть выполнен с chmod, как вы уже знаете.

Дальнейшие изменения в файле, как правило, сохраняют эти черты (очевидно, не связывайтесь с линией shebang во время редактирования), поэтому их нужно добавить только один раз.

Распространенной ошибкой начинающих является редактирование файла в Windows, что может привести к сохранению файла в неправильной кодировке.

В любом случае, вот простой Makefile, который удовлетворяет вашим требованиям:

python_program: python_program.py
    python ./$< >$@
    chmod +x $@

Вот один, который явно добавляет shebang в новый файл:

python_program: python_program.py
    printf '#!/usr/bin/env python\n' >$@
    python ./$< >>$@
    chmod +x $@

Оба они предполагают, что python_program.pyвыводит собственный источник на стандартный вывод.

Закрыть X