Home
About
Blog
Products
Forum
Support
Contact
Sunbelt Computer Software
PL/B Language Development and Support
Home
About
Blog
Products
Forum
Support
Contact
o3de/python/python.cmd at development · ShaunaGordon/o3de · GitHub
Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
View all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Search
/
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
ShaunaGordon
/
o3de
Public
forked from
o3de/o3de
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
1
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Files
Expand file tree
development
Breadcrumbs
o3de
/
python
/
python.cmd
Copy path
Blame
More file actions
Blame
More file actions
Latest commit
History
History
History
99 lines (76 loc) · 3.65 KB
development
Breadcrumbs
o3de
/
python
/
python.cmd
Copy path
Top
File metadata and controls
Code
Blame
99 lines (76 loc) · 3.65 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
@
ECHO
OFF
REM
REM
Copyright (c) Contributors to the Open 3D Engine Project.
REM
For complete copyright and license terms please see the LICENSE at the root of this distribution.
REM
REM
SPDX-License-Identifier: Apache-2.0 OR MIT
REM
REM
REM
This script provides a single entry point that you can trust is present.
REM
Depending on this entry point instead of trying to find a python.exe
REM
In a subfolder allows you to keep working if the version of python changes or
REM
other environmental requirements change.
REM
When the project switches to a new version of Python, this file will be updated.
SETLOCAL
SET
CMD_DIR
=
%~dp0
SET
CMD_DIR
=
%CMD_DIR:~
0
,
-1
%
REM
Calculate the path to the expected python venv for the current engine located at %CMD_DIR%\..
REM
The logic in LYPython will generate a unique ID based on the absolute path of the current engine
REM
so that the venv will not collide with any other versions of O3DE installed on the current machine
REM
Run the custom cmake command script to calculate the ID based on %CMD_DIR%\..
SET
CALC_PATH
=
%CMD_DIR%
\..\cmake\CalculateEnginePathId.cmake
FOR
/F
%%g
IN
('cmake -P
"
%CALC_PATH%
"
"
%CMD_DIR%
\..
"
')
DO
SET
ENGINE_ID
=
%%g
IF
NOT
"
%ENGINE_ID%
"
==
"
"
GOTO
ENGINE_ID_CALCULATED
echo
echo
Unable to calculate engine ID
exit
/b
1
:
ENGINE_ID_CALCULATED
REM
Set the expected location of the python venv for this engine and the locations of the critical scripts/executables
REM
needed to run python within the venv properly
REM
If the %LY_3RDPARTY_PATH% is not set, then default it to %USERPROFILE%/.o3de/3rdParty
IF
"
"
==
"
%LY_3RDPARTY_PATH%
"
(
SET
LY_3RDPARTY_PATH
=
%USERPROFILE%
\.o3de\3rdParty
)
SET
PYTHON_VENV
=
%USERPROFILE%
\.o3de\Python\venv\
%ENGINE_ID%
SET
PYTHON_VENV_ACTIVATE
=
%PYTHON_VENV%
\Scripts\activate.bat
SET
PYTHON_VENV_DEACTIVATE
=
%PYTHON_VENV%
\Scripts\deactivate.bat
IF
[
%1
]
EQU
[debug] (
SET
PYTHON_VENV_PYTHON
=
%PYTHON_VENV%
\Scripts\python_d.exe
SET
PYTHON_ARGS
=
%*
:~6%
)
ELSE
(
SET
PYTHON_VENV_PYTHON
=
%PYTHON_VENV%
\Scripts\python.exe
SET
PYTHON_ARGS
=
%*
)
IF
EXIST
"
%PYTHON_VENV_PYTHON%
"
GOTO
PYTHON_VENV_EXISTS
ECHO
Python has not been setup completely for O3DE. Missing Python venv
%PYTHON_VENV_PYTHON%
ECHO
Try running
%CMD_DIR%
\get_python.bat to setup Python for O3DE.
exit
/b
1
:
PYTHON_VENV_EXISTS
REM
If python venv exists, we still need to validate that it is the current version by getting the
REM
package current package hash from 3rd Party
FOR
/F
%%g
IN
('cmake -P
"
%CMD_DIR%
\get_python_package_hash.cmake
"
"
%CMD_DIR%
\..
"
Windows')
DO
SET
CURRENT_PACKAGE_HASH
=
%%g
IF
NOT
"
%CURRENT_PACKAGE_HASH%
"
==
"
"
GOTO
PACKAGE_HASH_READ
echo
echo
Unable to get current python package hash
exit
/b
1
:
PACKAGE_HASH_READ
REM
Make sure there a .hash file that serves as the marker for the source python package the venv is from
SET
PYTHON_VENV_HASH
=
%PYTHON_VENV%
\.hash
IF
EXIST
"
%PYTHON_VENV_HASH%
"
GOTO
PYTHON_VENV_HASH_EXISTS
ECHO
Python has not been setup completely for O3DE. Missing venv hash
%PYTHON_VENV_HASH%
ECHO
Try running
%CMD_DIR%
\get_python.bat to setup Python for O3DE.
exit
/b
1
:
PYTHON_VENV_HASH_EXISTS
REM
Read in the .hash from the venv to see if we need to update the version of python
SET
/p
VENV_PACKAGE_HASH
=
<
"
%PYTHON_VENV_HASH%
"
IF
"
%VENV_PACKAGE_HASH%
"
==
"
%CURRENT_PACKAGE_HASH%
"
GOTO
PYTHON_VENV_MATCHES
ECHO
Python needs to be updated against the current version.
ECHO
Try running
%CMD_DIR%
\get_python.bat to update Python for O3DE.
exit
/b
1
:
PYTHON_VENV_MATCHES
REM
Execute the python call from the arguments within the python venv environment
call
"
%PYTHON_VENV_ACTIVATE%
"
call
"
%PYTHON_VENV_PYTHON%
"
-B
%PYTHON_ARGS%
SET
PYTHON_RESULT
=
%ERRORLEVEL%
call
"
%PYTHON_VENV_DEACTIVATE%
"
exit
/B
%PYTHON_RESULT%
You can’t perform that action at this time.