Как превратить django в .exe, который автоматически запускает браузер?
Я создал djangoproject с папкой venv. С помощью cmd я могу запустить свой проект следующим образом:
- activating the environment with:
venv\Scripts\activate
- then inside the environment:
python manage.py runserver 8000
- opening my browser and going to http://127.0.0.1:8000/
Я пытаюсь превратить мой проект django в нечто, что мой клиент может запустить без использования python. И это будет автоматически запускать сервер и открывать ссылку в браузере одним нажатием кнопки.
Я использовал pyinstaller на manage.py, чтобы превратить все это в windows exe, но проблема в том, что теперь, когда я нажимаю на этот exe, он не запускает сервер. Он просто выдает тот же результат, что и если бы я запустил manage.py напрямую (без 'runserver'):
Type 'djangoProject.exe help <subcommand>' for help on a specific subcommand.
Available subcommands:
[...]
Как сделать так, чтобы получился exe, который выполняет команду 'runserver' и запускает браузер?
Что я пробовал:
Я подумал, может быть, я мог бы создать другой скрипт, который запускает exe, но выполнение djangoProject.exe runserver
в cmd только дает мне ошибку:
RuntimeError: Script runserver does not exist.
Я также пытался сделать что-то вроде написания скрипта на python (показанного ниже), который будет выполнять вышеупомянутые команды за меня, и потом использовать pyinstaller для этого, вместо manage.py, но я не смог заставить python выполнить вторую команду в venv, и я не уверен, что это сработало бы с pyinstaller в любом случае.
import subprocess
import os
import webbrowser
file_path = os.path.realpath(__file__)
subprocess.run([str(file_path)+"\\venv\\Scripts\\activate", "manage.py runserver 8000"], shell=True)
webbrowser.open("http://127.0.0.1:8000/")