AppPkg/.../Python: Clean up and document how to escape the -# option.

Depending upon the version of Shell you are using, it may be necessary
to escape the '#' character, when using the "-#" command-line option, so that
the Shell doesn't interpret it as the start of a comment.
The escape character is '^'.
Example:
    python -^# -V

* General updating.
* Re-format so that no line is longer than 80 char.
* Add note about escaping the "-#" command-line option.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daryl McDaniel <edk2-lists@mc2research.org>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19594 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Daryl McDaniel 2016-01-06 01:00:19 +00:00 committed by darylm503
parent b954a4fe01
commit 27c19606b0
2 changed files with 77 additions and 29 deletions

View File

@ -49,14 +49,14 @@ packages within that distribution.
3.2 Building Python
===================
B. From the AppPkg/Applications/Python/Python-2.7.10 directory, execute the
A. From the AppPkg/Applications/Python/Python-2.7.10 directory, execute the
srcprep.bat (srcprep.sh) script to copy the header files from within the
PyMod-2.7.10 sub-tree into their corresponding directories within the
distribution. This step only needs to be performed prior to the first
build of Python, or if one of the header files within the PyMod tree has been
modified.
A. Edit PyMod-2.7.10\Modules\config.c to enable the built-in modules you need.
B. Edit PyMod-2.7.10\Modules\config.c to enable the built-in modules you need.
By default, it is configured for the minimally required set of modules.
Mandatory Built-in Modules:
edk2 errno imp marshal
@ -68,10 +68,10 @@ packages within that distribution.
cStringIO gc itertools math
operator time
B. Edit AppPkg/AppPkg.dsc to enable (uncomment) the Python2710.inf line
C. Edit AppPkg/AppPkg.dsc to enable (uncomment) the Python2710.inf line
within the [Components] section.
C. Build AppPkg using the standard "build" command:
D. Build AppPkg using the standard "build" command:
For example, to build Python for an X64 CPU architecture:
build -a X64 -p AppPkg\AppPkg.dsc
@ -87,7 +87,8 @@ target system.
|- \etc Configuration files used by libraries.
|- \tmp Temporary files created by tmpfile(), etc.
|- \lib Root of the libraries tree.
|- \python27.10 Directory containing the Python library modules.
|- \python27.10 Directory containing the Python library
| modules.
|- \lib-dynload Dynamically loadable Python extensions.
|- \site-packages Site-specific packages and modules.
@ -100,8 +101,8 @@ target system.
These directories, on the target system, are populated from the development
system as follows:
* \Efi\Tools receives a copy of Build/AppPkg/DEBUG_VS2015/X64/Python.efi.
^^^^^^^^^^^^
* \Efi\Tools receives a copy of Build/AppPkg/DEBUG_VS2015/X64/Python2710.efi.
^^^^^^^^^^^^^^^^
Modify the host path to match your build type and compiler.
* The \Efi\StdLib\etc directory is populated from the StdLib/Efi/StdLib/etc
@ -131,8 +132,9 @@ system as follows:
2. enable LibraryClasses BsdSocketLib and EfiSocketLib in PythonCore.inf.
3. Build Python2710
build -a X64 -p AppPkg\AppPkg.dsc
6. copy Build\AppPkg\DEBUG_VS2005\X64\Python2710.efi to \Efi\Tools on your target system.
^^^^^^^^^^^^ Modify as needed
6. copy Build\AppPkg\DEBUG_VS2005\X64\Python2710.efi to \Efi\Tools on your
target system. Replace "DEBUG_VS2005\X64", in the source path, with
values appropriate for your tool chain and processor architecture.
7. Running Python
=================
@ -151,11 +153,12 @@ system as follows:
NOTE:
Python, as distributed, sends its interactive prompts to stderr. If
STDERR isn't enabled in UEFI Setup so that it's output goes to the console,
it may appear that Python hangs on startup. If this happens, one may
be able to rectify the condition by typing "exit()" followed by <enter>
to exit out of Python. Then, type "exit" at the Shell prompt which should
enter Setup.
STDERR isn't enabled in UEFI Setup so that it's output goes to the
console, it may appear that Python hangs on startup. If this happens,
one may be able to rectify the condition by typing "exit()" followed
by <enter> to exit out of Python. Then, type "exit" at the Shell prompt
which should enter Setup where you can use the Boot Maintenance
Manager to modify your Console settings.
NOTE:
Some platforms don't include the Setup utility, or don't allow STDERR to
@ -163,6 +166,12 @@ system as follows:
which will cause stderr to be the same as stdout and should allow
Python to be used interactively on those platforms.
Depending upon the version of Shell you are using, it may be necessary
to escape the '#' character so that the Shell doesn't interpret it as
the start of a comment. The escape character is '^'.
Example:
python -^# -V
8. Supported C Modules
======================
Module Name C File(s)

View File

@ -1,7 +1,8 @@
EDK II Python
ReadMe
Release 1.02
18 Jan. 2013
ReadMe
Version 2.7.2
Release 1.02
18 Jan. 2013
1. OVERVIEW
@ -25,10 +26,10 @@ packages within that distribution.
======================================================
3.1 Getting Python
==================
Currently only version 2.7.2 of the CPython distribution is supported. For development
ease, a subset of the Python 2.7.2 distribution has been included in the AppPkg source
tree. If a full distribution is desired, the Python-2.7.2 directory can be removed or
renamed and the full source code downloaded from http://www.python.org/ftp/python/2.7.2/.
For development ease, a subset of the Python 2.7.2 distribution has been
included in the AppPkg source tree. If a full distribution is desired, the
Python-2.7.2 directory can be removed or renamed and the full source code
downloaded from http://www.python.org/ftp/python/2.7.2/.
A. Within your EDK II development tree, extract the Python distribution into
AppPkg/Applications/Python. This should create the
@ -70,7 +71,8 @@ target system.
|- \etc Configuration files used by libraries.
|- \tmp Temporary files created by tmpfile(), etc.
|- \lib Root of the libraries tree.
|- \python.27 Directory containing the Python library modules.
|- \python.27 Directory containing the Python library
| modules.
|- \lib-dynload Dynamically loadable Python extensions.
|- \site-packages Site-specific packages and modules.
@ -81,7 +83,7 @@ These directories, on the target system, are populated from the development
system as follows:
* \Efi\Tools receives a copy of Build/AppPkg/DEBUG_VS2005/X64/Python.efi.
^^^^^ ^^^^^^
^^^^^ ^^^^^^^^^^
Modify the host path to match the your build type and compiler.
* The \Efi\StdLib\etc directory is populated from the StdLib/Efi/StdLib/etc
@ -94,8 +96,8 @@ system as follows:
site types copy_reg linecache genericpath
* Python C Extension Modules built as dynamically loadable extensions go into
the \Efi\StdLib\lib\python.27\lib-dynload directory. This functionality is not
yet implemented.
the \Efi\StdLib\lib\python.27\lib-dynload directory. This functionality is
not yet implemented.
6. Example: Enabling socket support
@ -107,11 +109,48 @@ system as follows:
functools, types, os, sys, warnings, cStringIO, StringIO, errno
5. build -a X64 -p AppPkg\AppPkg.dsc
6. copy Build\AppPkg\DEBUG_VS2005\X64\Python.efi to \Efi\Tools on your target system.
^^^^ Modify as needed
6. copy Build\AppPkg\DEBUG_VS2005\X64\Python.efi to \Efi\Tools on your
target system. Replace "DEBUG_VS2005\X64", in the source path, with
values appropriate for your tool chain and processor architecture.
7. Supported C Modules
7. Running Python
=================
Python must currently be run from an EFI FAT-32 partition, or volume, under
the UEFI Shell. At the Shell prompt enter the desired volume name, followed
by a colon ':', then press Enter. Python can then be executed by typing its
name, followed by any desired options and arguments.
EXAMPLE:
2.0 Shell> fs0:
2.0 FS0:\> python
Python 2.7.2 (default, Oct 13 2015, 16:21:53) [C] on uefi
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
2.0 FS0:\>
NOTE:
Python, as distributed, sends its interactive prompts to stderr. If
STDERR isn't enabled in UEFI Setup so that it's output goes to the
console, it may appear that Python hangs on startup. If this happens,
one may be able to rectify the condition by typing "exit()" followed
by <enter> to exit out of Python. Then, type "exit" at the Shell prompt
which should enter Setup where you can use the Boot Maintenance
Manager to modify your Console settings.
NOTE:
Some platforms don't include the Setup utility, or don't allow STDERR to
be modified. In these cases, Python may be started with the '-#' option
which will cause stderr to be the same as stdout and should allow
Python to be used interactively on those platforms.
Depending upon the version of Shell you are using, it may be necessary
to escape the '#' character so that the Shell doesn't interpret it as
the start of a comment. The escape character is '^'.
Example:
python -^# -V
8. Supported C Modules
======================
Module Name C File(s)
=============== =============================================
@ -166,7 +205,7 @@ system as follows:
zlib Modules/zlibmodule.c Modules/zlib/*
8. Tested Python Library Modules
9. Tested Python Library Modules
================================
This is a partial list of the packages and modules of the Python Standard
Library that have been tested or used in some manner.