From: "Carsey, Jaben" <jaben.carsey@intel.com>
To: KT <tresko1@gmail.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "edk2-lists@mc2research.org" <edk2-lists@mc2research.org>
Subject: Re: Python issue in UEFI shell
Date: Mon, 24 Apr 2017 14:21:55 +0000 [thread overview]
Message-ID: <CB6E33457884FA40993F35157061515C54C0D666@FMSMSX103.amr.corp.intel.com> (raw)
In-Reply-To: <CAD+hite04GxrzAqYbP2zfmDBsgDrV71Rkv9jW9Agg+7vsVHbrQ@mail.gmail.com>
I am not sure here, but I think that you may have issues running multiple threads in the UEFI environment. Have you tried not using multiple threadS?
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of KT
> Sent: Monday, April 24, 2017 5:32 AM
> To: edk2-devel@lists.01.org
> Cc: edk2-lists@mc2research.org
> Subject: Re: [edk2] Python issue in UEFI shell
> Importance: High
>
> Hello,
> Can someone please shed some light on this issue?
>
> Thanks
>
> Thanks
> On Tue, Apr 18, 2017 at 2:56 PM, KT <tresko1@gmail.com> wrote:
>
> > Hi experts,
> >
> > I am experimenting python scripts in UEFI shell and as part of the first
> > step I tried compiling python as per the instructions in
> > edk2\AppPkg\Applications\Python\PythonReadMe.txt. However when I
> run my
> > script, I noticed that it required third-party modules (requests, urllib3
> > etc). So I manually copied these under the \EFI\StdLib\lib\python.27\site-
> packages
> > folder (not sure if that is the correct way). That said currently my script
> > is failing as follows:
> >
> > Traceback (most recent call last):
> > File "rest_json.py", line 11, in <module>
> > import requests
> > File "\Efi\StdLib\lib\python.27\site-packages/requests/__init__.py",
> > line 60, in <module>
> > from .packages.urllib3.exceptions import DependencyWarning
> > File "\Efi\StdLib\lib\python.27\site-
> packages/requests/packages/__init__.py",
> > line 29, in <module>
> > import urllib3
> > File "\Efi\StdLib\lib\python.27\site-packages/urllib3/__init__.py",
> > line 8, in <module>
> > from .connectionpool import (
> > File "\Efi\StdLib\lib\python.27\site-
> packages/urllib3/connectionpool.py",
> > line 28, in <module>
> > from .packages.six.moves import queue
> > File "\Efi\StdLib\lib\python.27\site-packages/urllib3/packages/six.py",
> > line 203, in load_module
> > mod = mod._resolve()
> > File "\Efi\StdLib\lib\python.27\site-packages/urllib3/packages/six.py",
> > line 115, in _resolve
> > return _import_module(self.mod)
> > File "\Efi\StdLib\lib\python.27\site-packages/urllib3/packages/six.py",
> > line 82, in _import_module
> > __import__(name)
> > File "\Efi\StdLib\lib\python.27/Queue.py", line 7, in <module>
> > import dummy_threading as _threading
> > File "\Efi\StdLib\lib\python.27/dummy_threading.py", line 45, in
> > <module>
> > import threading
> > ImportError: No module named threading
> >
> >
> >
> > I understand that the script is now looking for the threading module and
> > after investigating further I realized I may have to turn on the threading
> > module as part of compiling python. So I modified the
> > \edk2\AppPkg\Applications\Python\X64\pyconfig.h file to change '#undef
> > WITH_THREAD' to '#define WITH_THREAD', but this is giving the following
> > compiling error. Any pointers please?
> >
> > "C:\Program Files (x86)\Microsoft Visual Studio
> > 11.0\Vc\bin\x86_amd64\cl.exe"
> /Foc:\users\user\documents\dev\uefi\edk2\edk
> > 2\Build\AppPkg\DEBUG_VS2012x86\X64\AppPkg\Applications\Pytho
> > n\PythonCore\OUTPUT\.\AutoGen.obj /nologo /c /WX /GS- /W4 /Gs32768
> /D
> > UNICODE /O1ib2s /GL /
> > Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Oi- /wd4018 /wd4054 /wd4055
> > /wd4101 /wd4131 /wd4152 /wd4204 /wd4210 /wd4244 /wd4267 /wd4305
> /wd4310
> > /wd4389 /
> > wd4701 /wd4702 /wd4706 /Ic:\users\user\documents\dev\
> > uefi\edk2\edk2\AppPkg\Applications\Python\X64
> /Ic:\users\user\documents\de
> > v\uefi\edk2\edk2\AppPkg\Applications\Python\Efi
> > /Ic:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\Applications
> > \Python\Python-2.7.2\Include /DHAVE_MEMMOVE /DUSE_PYEXPAT_CAPI
> > /DXML_STATIC /X /Zc:wchar_t /D UEFI_C_SOURCE
> /Ic:\users\user\documents\dev\
> > uefi\edk2_
> > livecode_3_6_2016\edk2\AppPkg\Applications\Python\Python-
> 2.7.2\Modules\zlib
> > /Ic:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\A
> > pplications\Python\Python-2.7.2\Modules\expat
> > /Ic:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\Applicat
> > ions\Python\PyMod-2.7.2
> > \Modules\expat /Ic:\users\user\documents\dev\
> > uefi\edk2\edk2\AppPkg\Applications\Python\Python-
> 2.7.2\Modules\cjkcodecs
> > /Ic:\users
> >
> \user\documents\dev\uefi\edk2\edk2\AppPkg\Applications\Python\Pytho
> n-2.7.2\Modules\_io
> > /Ic:\users\user\documents\dev\uefi\edk2
> > _livecode_3_6_2016\edk2\AppPkg\Applications\Python\Python-
> 2.7.2\Modules
> > /Ic:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\Appli
> > cations\Python\PyMod-2.7.2\Modules /Ic:\users\user\documents\dev\
> > uefi\edk2\edk2\AppPkg\Applications\Python\Python-2.7.2\Objects
> > /Ic:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\Applicat
> > ions\Python\PyMod-2.7.2\Objects /Ic:\users\user\documents\dev\uefi
> > \edk2\edk2\AppPkg\Applications\Python\Python-2.7.2\Python
> > /Ic:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\A
> > pplications\Python\PyMod-2.7.2\Python /Ic:\users\user\documents\dev\
> > uefi\edk2\edk2\AppPkg\Applications\Python\Python-2.7.2\Parser
> >
> /Ic:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\Applications\Pyth
> on\Efi
> > /Ic:\users\user\documents\dev\uefi\edk2_livecode
> > _3_6_2016\edk2\AppPkg\Applications\Python
> /Ic:\users\user\documents\dev\
> > uefi\edk2\edk2\Build\AppPkg\DEBUG_VS2012x86\X64\AppPkg\Ap
> > plications\Python\PythonCore\DEBUG
> /Ic:\users\user\documents\dev\uefi\edk2\edk2\StdLib
> > /Ic:\users\user\documents\dev\uefi\edk
> > 2_livecode_3_6_2016\edk2\StdLib\Include
> /Ic:\users\user\documents\dev\
> > uefi\edk2\edk2\StdLib\Include\X64 /Ic:\users\user\docum
> > ents\dev\uefi\edk2\edk2\MdePkg
> /Ic:\users\user\documents\dev\uefi\edk2\edk2\MdePkg\Include
> > /Ic:\users\user\
> > documents\dev\uefi\edk2\edk2\MdePkg\Include\X64
> > c:\users\user\documents\dev\uefi\edk2\edk2\Build\AppPkg\DEBUG_VS
> >
> 2012x86\X64\AppPkg\Applications\Python\PythonCore\DEBUG\AutoGen.c
> > cl : Command line warning D9025 : overriding '/Oi' with '/Oi-'
> > AutoGen.c
> > "C:\Program Files (x86)\Microsoft Visual Studio
> > 11.0\Vc\bin\x86_amd64\lib.exe" /NOLOGO /LTCG
> /OUT:c:\users\user\documents\d
> > ev\uefi\edk2_live
> > code_3_6_2016\edk2\Build\AppPkg\DEBUG_VS2012x86\X64\AppPkg\A
> > pplications\Python\PythonCore\OUTPUT\Python.lib
> > @c:\users\user\documents\dev\uefi\edk2_l
> > ivecode_3_6_2016\edk2\Build\AppPkg\DEBUG_VS2012x86\X64\AppPk
> > g\Applications\Python\PythonCore\OUTPUT\object_files.lst
> > "C:\Program Files (x86)\Microsoft Visual Studio
> > 11.0\Vc\bin\x86_amd64\link.exe"
> /OUT:c:\users\user\documents\dev\uefi\edk2
> > \edk2\Build\AppPkg\DEBUG_VS2012x86\X64\AppPkg\Applications\P
> > ython\PythonCore\DEBUG\Python.dll /NOLOGO /NODEFAULTLIB
> /IGNORE:4001
> > /OPT:REF /OPT:ICF=10 /
> > MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG
> /DLL
> > /ENTRY:_ModuleEntryPoint /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
> /SAFESEH:NO
> > /BASE
> > :0 /DRIVER /DEBUG @c:\users\user\documents\dev\u
> > efi\edk2\edk2\Build\AppPkg\DEBUG_VS2012x86\X64\AppPkg\Applic
> > ations\Python\PythonC
> > ore\OUTPUT\static_library_files.lst
> > Python.lib(ceval.obj) : error LNK2001: unresolved external symbol
> > PyThread_acquire_lock
> > Python.lib(ceval.obj) : error LNK2001: unresolved external symbol
> > PyThread_allocate_lock
> > Python.lib(ceval.obj) : error LNK2001: unresolved external symbol
> > PyThread_get_thread_ident
> > Python.lib(ceval.obj) : error LNK2001: unresolved external symbol
> > PyThread_release_lock
> > Python.lib(signalmodule.obj) : error LNK2001: unresolved external symbol
> > PyThread_ReInitTLS
> > Python.lib(pystate.obj) : error LNK2001: unresolved external symbol
> > PyThread_delete_key
> > Python.lib(pystate.obj) : error LNK2001: unresolved external symbol
> > PyThread_create_key
> > Python.lib(pystate.obj) : error LNK2001: unresolved external symbol
> > PyThread_set_key_value
> > Python.lib(pystate.obj) : error LNK2001: unresolved external symbol
> > PyThread_delete_key_value
> > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
> > Studio 11.0\Vc\bin\x86_amd64\link.exe"' : return code '0x460'
> > PStop.
> > ython.lib(pystate.obj) : error LNK2001: unresolved external symbol
> > PyThread_get_key_value
> > Python.lib(threadmodule.obj) : error LNK2001: unresolved external symbol
> > PyThread_free_lock
> > Python.lib(threadmodule.obj) : error LNK2001: unresolved external symbol
> > PyThread_get_stacksize
> > Python.lib(threadmodule.obj) : error LNK2001: unresolved external symbol
> > PyThread_exit_thread
> > Python.lib(threadmodule.obj) : error LNK2001: unresolved external symbol
> > PyThread_init_thread
> > Python.lib(threadmodule.obj) : error LNK2001: unresolved external symbol
> > PyThread_set_stacksize
> > Python.lib(threadmodule.obj) : error LNK2001: unresolved external symbol
> > PyThread_start_new_thread
> > c:\users\user\documents\dev\uefi\edk2\edk2\Build\AppPkg\DEBU
> >
> G_VS2012x86\X64\AppPkg\Applications\Python\PythonCore\DEBUG\Pytho
> n.dll
> > : fatal error LNK1120: 16 unresolved externals
> >
> > build...
> > : error 7000: Failed to execute command
> > C:\Program Files (x86)\Microsoft Visual Studio
> > 11.0\Vc\bin\nmake.exe /nologo tbuild [c:\users\user\documents\dev\u
> > efi\edk2
> > \edk2\Build\AppPkg\DEBUG_VS2012x86\X64\AppPkg\Applications\P
> > ython\PythonCore]
> >
> > build...
> > : error F002: Failed to build module
> >
> c:\users\user\documents\dev\uefi\edk2\edk2\AppPkg\Applications\Pytho
> n\PythonCore.inf
> > [X64, VS2012x86, DEBUG]
> >
> >
> >
> > Note that I also has to modify
> \edk2\AppPkg\Applications\Python\Efi\config.c
> > to uncomment "{"thread", initthread}," and edit
> > \edk2\AppPkg\Applications\Python\PythonCore.inf to add
> > 'Python-$(PYTHON_VERSION)/Modules/threadmodule.c'.
> >
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
prev parent reply other threads:[~2017-04-24 14:21 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-24 12:31 Python issue in UEFI shell KT
2017-04-24 14:21 ` Carsey, Jaben [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CB6E33457884FA40993F35157061515C54C0D666@FMSMSX103.amr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox