Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 4
1

Запуск скрипта написанного на python на windows, где не установлен python

18.02.2020, 12:38. Показов 5106. Ответов 5

Author24 — интернет-сервис помощи студентам
Не запускается скрипт на Windows, где не установлен python.
Команда в коде на выполнение написана так:

Python
1
2
3
4
def Adminnewpriglash():
    subprocess.Popen("python C:\Avtotest\Adminnewpriglash.py")
 
adminmenu2.add_command(label="Приглашения", command=Adminnewpriglash)
При запуске в консоли отображается след. ошибка:

Python
1
2
3
4
5
6
7
8
Exception in Tkinter callback
Traceback (most recent call last):
  File "tkinter\__init__.py", line 1705, in __call__
  File "avtotest.py", line 84, in Adminnewpriglash
    subprocess.Popen("python C:\Avtotest\Adminnewpriglash.py")
  File "subprocess.py", line 769, in __init__
  File "subprocess.py", line 1172, in _execute_child
FileNotFoundError: [WinError 2] Не удается найти указанный файл
Почему не запускается? Вроде в папке, где находится скрипт собраны все библиотеки для запуска. Это было выполнено с помощью модуля pyinstaller.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2020, 12:38
Ответы с готовыми решениями:

Запуск Python Скрипта из С++
Доброго времени суток. Подскажите пожалуйста в чем ошибка. Есть программа на С++ вызывающая...

Запуск Python скрипта
Доброго времени суток, проблема с запуском скрипта из WPF C# - запуска происходит, но окно...

Запуск python-скрипта из Java
Привет, есть такой код: Process p = Runtime.getRuntime().exec(command); InputStream stdout =...

Запуск скрипта Python в программе C++
Всем привет! Подскажите, пожалуйста, возможно ли из С++ вызвать функцию из файлика на питоне, в...

Запуск python скрипта из C# приложения
Доброго времени суток, помогите пожалуйста реализовать несложную задачку: есть много скриптов,...

5
Эксперт Python
5434 / 3857 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
18.02.2020, 14:54 2
Цитата Сообщение от Lemit Посмотреть сообщение
Вроде в папке, где находится скрипт собраны все библиотеки для запуска
Но python'а то нет в PATH на этом компе .... Откуда Popen знает куда ты его засунул? Или ты думаешь она обязана его в твоем каталоге найти?
Наивный. Твой exe на самом деле при запуске распаковывается во временную папку в Temp вместе со всем добром.
0
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 4
18.02.2020, 15:36  [ТС] 3
Благодарю за ответ. Если Вы про переменные среды, то в переменной Path была указана папка, где лежат все собранные библиотеки и файлы с помощью pyinstaller. А если Вы говорите что при запуске оно распаковывается во временной папке Temp, то ее нужно указывать в Path? или чушь несу?)
0
Эксперт Python
5434 / 3857 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
19.02.2020, 00:06 4
Цитата Сообщение от Garry Galler Посмотреть сообщение
python'а то нет в PATH на этом компе .
Прочитай еще раз эту фразу. С упором на слово "на этом (то есть чужом) компе".

Добавлено через 38 секунд
Цитата Сообщение от Lemit Посмотреть сообщение
то ее нужно указывать в Path?
Нет - не нужно. Нужен скрипт определения временного каталога в который распаковывается архив.
Ищите по слову MEIPASS.
Выдержка из документации которую обычно всем лень читать:
When a bundled app starts up, the bootloader sets the sys.frozen attribute and stores the absolute path to the bundle folder in sys._MEIPASS. For a one-folder bundle, this is the path to that folder. For a one-file bundle, this is the path to the temporary folder created by the bootloader (see How the One-File Program Works).
И тогда можно этот путь подставлять в Popen.

Добавлено через 7 минут
P.S. Только я не понял: что именно не находится файл C:\Avtotest\Adminnewpriglash.py или сам python?
В любом случае было очень глупо зашивать абсолютные пути в команду.
Пути должны всегда вычисляться динамически.
0
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 4
19.02.2020, 11:31  [ТС] 5
Нет - не нужно. Нужен скрипт определения временного каталога в который распаковывается архив.
Ищите по слову MEIPASS.
Выдержка из документации которую обычно всем лень читать:
Спасибо, почитаю.

P.S. Только я не понял: что именно не находится файл C:\Avtotest\Adminnewpriglash.py или сам python?
В любом случае было очень глупо зашивать абсолютные пути в команду.
Пути должны всегда вычисляться динамически.
Файл Adminnewpriglash.py как раз таки находится по указанному адресу, но видимо проблема в запуске этого файла, т.к не установлен питон на ПК, то файл не запускается через команду:
Python
1
subprocess.Popen("python C:\Avtotest\Adminnewpriglash.py")
Может быть есть альтернатива для запуска этого файла?
0
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 4
21.02.2020, 18:12  [ТС] 6
После прочтения о MEIPASS стало понятно, что он нужен, если скрипт собирается в один файл, а у меня не в один файл собиралось.
В общем есть временное(а может и постоянное) решение скопилить все файлы в exe и их уже запускать из главного окна вместо файлов *.py:
Python
1
2
def Adminnewpriglash():
     subprocess.Popen("C:\Avtotest\Adminnewpriglash.exe")
0
21.02.2020, 18:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2020, 18:12
Помогаю со студенческими работами здесь

Запуск Python скрипта по Cron
Всем привет! Не получается настроить запуск python скрипта из под linux по расписанию CRON. Если...

Запуск Python скрипта на VPS
Добрый день У меня есть скрипт на Python, который должен обрабатывать результат работы скрипта на...

Запуск Python скрипта с использованием Jupyter
Доброго времени суток! Впервые столкнулась с пайтоном, поэтому прошу помощи. Мое задание состоит...

Запуск скрипта python через QProcess
Я пытаюсь сейчас сделать программу, которая запускает питоновский скрипт через QProcess. Скрипт...

Запуск скрипта python через javascript
У меня есть набор данных за год, также есть скрипт, который строит график по этим данным за...

Запуск скрипта Python через шедулер
Добрый день. Прошу помочь с постановкой питон-скрипта на запуск по расписанию, так как вылезло...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru