Создание exe из py, который по умолчанию передает аргумент при выполнении?

Если предположить, что это код test.py:

import sys

for arg in sys.argv:
    print arg
print "Hello World!"

Используя такие инструменты, как авто-py-to-exe или pyinstaller или py2exe или ..., как мы можем сделать exe, который по умолчанию передает определенный аргумент при выполнении? Например: с помощью инструмента мы создаем test.exe из test.py, а при выполнении test.exe он будет использовать foobar как arg. Результат выполнения test.exe:

foobar
Hello World!

Я уже тестировал auto-py-to-exe и pyinstaller, но в обоих нет такой опции. Я должен упомянуть, что меня больше интересует использование [любых] инструментов, а не просто изменение исходного кода Python. Потому что изменение может быть сложной задачей в более крупных источниках.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
0
397
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы рекомендовал использовать Python ArgumentParser (https://docs.python.org/2/howto/argparse.html) и просто установить значение default= для вашего аргумента.

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("argument", default = "foobar")
args = parser.parse_args()

print arg
print "Hello World!"

Вы также можете реструктурировать вызванный вами скрипт python для реализации «основного» метода с необходимыми аргументами:

def main(argument):
    print argument
    print "Hello World!"

Для ваших конкретных исполняемых файлов просто создайте отдельные сценарии-оболочки:

foobar.py

from test import main
test("foobar")

anotherfoobar.py

from test import main
test("anotherfoobar")

Теперь вы можете использовать pyinstaller для создания исполняемых файлов foobar.py и anotherfoobar.py по отдельности.

Спасибо за ресурсы и примеры. Похоже на рабочее решение, особенно в таких простых кодах, но я ищу решение на стороне инструмента, не изменяя файл py (я упомяну об этом в вопросе), потому что исходный код, который Я вижу, что это 6000 строк кода, и его трудно изменить.

0_o 14.08.2018 10:43

Другие вопросы по теме