Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 4
1

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

18.02.2020, 12:38. Просмотров 524. Ответов 5

Не запускается скрипт на 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 скрипта с использованием Jupyter
Доброго времени суток! Впервые столкнулась с пайтоном, поэтому прошу помощи. Мое задание состоит...

Как из Python скрипта выполнить другой python скрипт?
Как из Python скрипта выполнить другой python скрипт? Если он находится в той же папке но нужно...

Запуск Python кода под Windows
Есть вот такая вот програмка: import math from decimal import Decimal import...

5
3151 / 2400 / 850
Регистрация: 28.10.2013
Сообщений: 6,255
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
3151 / 2400 / 850
Регистрация: 28.10.2013
Сообщений: 6,255
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.p y или сам python?
В любом случае было очень глупо зашивать абсолютные пути в команду.
Пути должны всегда вычисляться динамически.
0
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 4
19.02.2020, 11:31  [ТС] 5
Нет - не нужно. Нужен скрипт определения временного каталога в который распаковывается архив.
Ищите по слову MEIPASS.
Выдержка из документации которую обычно всем лень читать:
Спасибо, почитаю.

P.S. Только я не понял: что именно не находится файл C:\Avtotest\Adminnewpriglash.p y или сам 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2020, 18:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужно понять синтаксис кода написанного на Python
Привет всем! У меня тут задачка: дан шифротекст (зашифрованный шифром Виженера) и переведенный в...

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.