If only .pyc exist, the extension API will be disabled
In some commercial production environments, generally will not expose the
source code, this means that only .pyc files exist in the environment.In
this case, the extension API cannot be loaded.
Closes-Bug:#1869148
Change-Id: Id5238e7efe5ff0b80197ac0afa9f5f7a73239f20
(cherry picked from commit 8c582d8791
)
This commit is contained in:
parent
02fd716bf8
commit
6b3daf4814
@ -273,12 +273,16 @@ def load_standard_extensions(ext_mgr, logger, path, package, ext_list=None):
|
||||
else:
|
||||
relpkg = '.%s' % '.'.join(relpath.split(os.sep))
|
||||
|
||||
# Now, consider each file in turn, only considering .py files
|
||||
# Now, consider each file in turn, only considering .py and .pyc files
|
||||
for fname in filenames:
|
||||
root, ext = os.path.splitext(fname)
|
||||
|
||||
# Skip __init__ and anything that's not .py
|
||||
if ext != '.py' or root == '__init__':
|
||||
# Skip __init__ and anything that's not .py and .pyc
|
||||
if (ext not in ('.py', '.pyc')) or root == '__init__':
|
||||
continue
|
||||
|
||||
# If .pyc and .py both exist, skip .pyc
|
||||
if ext == '.pyc' and ((root + '.py') in filenames):
|
||||
continue
|
||||
|
||||
# Try loading it
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
`Launchpad bug 1869148 <https://launchpad.net/bugs/1869148>`_ has been
|
||||
fixed. This bug could have affected environments where extension APIs were
|
||||
provided in compiled files rather than source code.
|
||||
|
Loading…
Reference in New Issue
Block a user