Ошибка при сборке pyinstaller - Do not run pyinstaller from C:\Windows\System32
Код должен рассчитывать заработок в одной игре:
print("Калькулятор вычесляющий часовой доход на evoplus")
print("________________________________________________")
print("")
blocks = int(input("кол-во блоков в минуту: "))
buster = int(input("ваш постоянный бустер(учитывая алчность и тд) (Учитывая оледку если пьете ее постоянно) (Писать в миллионах без 'm'): "))
block_price = int(input("цена блока(учитывая бустер) (если используете оледки писать цену блока под оледкой) (Писать в миллионах без 'm'): "))
legend_tool = int(input("Используете ли лег инструмент(0 - нет, 1 - да): "))
elei = int(input("есть ли элей ?(0 - нет, 1 - да): "))
mouse = int(input("есть ли летучая мышь?(0 - нет, 1 - да): "))
miner = int(input("добытчик(в случае отсутствия пишите - 0): "))
gold = int(input("золото(в случае отсутствия пишите - 0): "))
legend = int(input("Легенда(в случае отсутствия пишите - 0): "))
mole = int(input("крот(в случае отсутствия пишите - 0): "))
print("")
if elei == 0:
elei_prok = 0
else:
elei_prok = round((blocks * 60) / 10000)
if mouse == 0:
mouse_prok = 0
else:
mouse_prok = round((blocks * 60) / 20000)
if miner == 0:
miner_prok = 0
else:
miner_prok = round((blocks * 60) / (800 - (miner * 150)))
if gold == 0:
gold_prok = 0
else:
gold_prok = round((blocks * 60) / (6000 - (gold * 1000)))
if legend == 0:
legend_prok = 0
else:
legend_prok = round((blocks * 60) / (100 / (legend * 2)))
if mole == 0:
mole_prok = 0
else:
mole_prok = round((blocks * 60) / (100 / (mole * 1)))
if legend_tool == 0:
legend_tool_prok = 0
else:
legend_tool_prok = round((blocks * 60) / 10)
blocks_profit = block_price * blocks * 60
elei_profit = elei_prok * (block_price * 9200)
mouse_profit = mouse_prok * (block_price * 9200)
miner_profit = miner_prok * (64 * block_price)
gold_profit = round(gold_prok * (block_price / buster) * (buster + 0.5) * blocks / 60 * 90)
legend_profit = legend_prok * block_price * 2
mole_profit = mole_prok * block_price * 2
legend_tool_profit = legend_tool_prok * block_price * 2
if blocks_profit >= 1000:
blocks_profit_prev = str(round(blocks_profit / 1000))
print(str(("Ваш доход в час с блоков: ")) + blocks_profit_prev + "b")
else:
blocks_profit_prev = str(round(blocks_profit))
print(str(("Ваш доход в час с блоков: ")) + blocks_profit_prev + "m")
print("")
if elei_profit >= 1000:
elei_profit_prev = str(round(elei_profit / 1000))
print(str(("Ваш доход в час с элея: ")) + elei_profit_prev + "b")
else:
elei_profit_prev = str(round(elei_profit))
print(str(("Ваш доход в час с элея: ")) + elei_profit_prev + "m")
print("")
if mouse_profit >= 1000:
mouse_profit_prev = str(round(mouse_profit / 1000))
print(str(("Ваш доход в час с летучей мыши: ")) + mouse_profit_prev + "b")
else:
mouse_profit_prev = str(round(mouse_profit))
print(str(("Ваш доход в час с летучей мыши: ")) + mouse_profit_prev + "m")
print("")
if miner_profit >= 1000:
miner_profit_prev = str(round(miner_profit / 1000))
print(str(("Ваш доход в час с руны 'добытчик': ")) + miner_profit_prev + "b")
else:
miner_profit_prev = str(round(miner_profit))
print(str(("Ваш доход в час с руны 'добытчик': ")) + miner_profit_prev + "m")
print("")
if gold_profit >= 1000:
gold_profit_prev = str(round(gold_profit / 1000))
print(str(("Ваш доход в час с руны 'золото': ")) + gold_profit_prev + "b")
else:
gold_profit_prev = str(round(gold_profit))
print(str(("Ваш доход в час с руны 'золото': ")) + gold_profit_prev + "m")
print("")
if legend_profit >= 1000:
legend_profit_prev = str(round(legend_profit / 1000))
print(str(("Ваш доход в час с руны 'легенда': ")) + legend_profit_prev + "b")
else:
legend_profit_prev = str(round(legend_profit))
print(str(("Ваш доход в час с руны 'легенда': ")) + legend_profit_prev + "m")
print("")
if mole_profit >= 1000:
mole_profit_prev = str(round(mole_profit / 1000))
print(str(("Ваш доход в час с руны 'крот': ")) + mole_profit_prev + "b")
else:
mole_profit_prev = str(round(mole_profit))
print(str(("Ваш доход в час с руны 'крот': ")) + mole_profit_prev + "m")
print("")
if legend_tool_profit >= 1000:
legend_tool_profit_prev = str(round(legend_tool_profit / 1000))
print(str(("Ваш доход в час с легендарного предмета: ")) + legend_tool_profit_prev + "b")
else:
legend_tool_profit_prev = str(round(legend_tool_profit))
print(str(("Ваш доход в час с легендарного предмета: ")) + legend_tool_profit_prev + "m")
otvet = blocks_profit + elei_profit + mouse_profit + miner_profit + gold_profit + legend_profit + mole_profit + legend_tool_profit
print("")
print("________________________________________________")
print("")
if otvet >=1000000:
otvet_prev = str(round(otvet / 1000000, 2))
print(("Итог, ваш доход в час: ") + otvet_prev + "t")
elif otvet >=1000:
otvet_prev = str(round(otvet / 1000, 2))
print(("Итог, ваш доход в час: ") + otvet_prev + "b")
else:
otvet_prev = str(otvet)
print(("Итог, ваш доход в час: ") + otvet_prev + "m")
input()
Однако при конвертации приложения в exe через pyinstaller возникает ошибка:
Running auto-py-to-exe v2.44.1
Building directory: C:\Users\chinu\AppData\Local\Temp\tmpg7zaqnpn
Provided command: pyinstaller --noconfirm --onefile --console "C:\Users\chinu\OneDrive\Рабочий стол\pyrhon\Evo-calc.py"
Recursion Limit is set to 5000
Executing: pyinstaller --noconfirm --onefile --console C:\Users\chinu\OneDrive\Рабочий стол\pyrhon\Evo-calc.py --distpath C:\Users\chinu\AppData\Local\Temp\tmpg7zaqnpn\application --workpath C:\Users\chinu\AppData\Local\Temp\tmpg7zaqnpn\build --specpath C:\Users\chinu\AppData\Local\Temp\tmpg7zaqnpn
An error occurred while packaging
Traceback (most recent call last):
File "C:\Users\chinu\OneDrive\Рабочий стол\auto-py-to-exe-master\auto_py_to_exe\packaging.py", line 132, in package
run_pyinstaller(pyinstaller_args[1:])
File "C:\Users\chinu\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PyInstaller\__main__.py", line 166, in run
check_unsafe_privileges()
File "C:\Users\chinu\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\PyInstaller\__main__.py", line 300, in check_unsafe_privileges
raise SystemExit(
SystemExit: Error: Do not run pyinstaller from C:\Windows\System32. cd to where your code is and run pyinstaller from there. Hint: You can open a terminal where your code is by going to the parent folder in Windows file explorer then typing cmd into the address bar.
Project output will not be moved to output folder
Complete.
Проблема с конвертацией решилась, после конвертации при запуске файла выдает ошибку
Ответы (1 шт):
Автор решения: mrgervant
→ Ссылка
Если буквально переводить трейс ошибки, то pyinstaller
просит не запускать его из C:\Windows\System32
, а перейти в директорию Вашего проекта и запускать консоль из неё.
Данная ошибка возникает при вызове функции check_unsafe_privileges()
.
В сумме выходит, что pyinstaller
не может запуститься в корне Windows из-за отсутствия привилегий - их можно выдать приложению, если запустить от имени администратора.