fix compiled app in py3
This commit is contained in:
@@ -59,8 +59,6 @@ def app_pack(app, request, raise_ex=False, filenames=None):
|
|||||||
w2p_pack(filename, apath(app, request), filenames=filenames)
|
w2p_pack(filename, apath(app, request), filenames=filenames)
|
||||||
return filename
|
return filename
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
import traceback
|
|
||||||
print(traceback.format_exc())
|
|
||||||
if raise_ex:
|
if raise_ex:
|
||||||
raise
|
raise
|
||||||
return False
|
return False
|
||||||
|
|||||||
+6
-8
@@ -44,18 +44,15 @@ from functools import reduce
|
|||||||
logger = logging.getLogger("web2py")
|
logger = logging.getLogger("web2py")
|
||||||
from gluon import rewrite
|
from gluon import rewrite
|
||||||
from gluon.custom_import import custom_import_install
|
from gluon.custom_import import custom_import_install
|
||||||
|
import py_compile
|
||||||
try:
|
|
||||||
import py_compile
|
|
||||||
except:
|
|
||||||
logger.warning('unable to import py_compile')
|
|
||||||
|
|
||||||
is_pypy = settings.global_settings.is_pypy
|
is_pypy = settings.global_settings.is_pypy
|
||||||
is_gae = settings.global_settings.web2py_runtime_gae
|
is_gae = settings.global_settings.web2py_runtime_gae
|
||||||
is_jython = settings.global_settings.is_jython
|
is_jython = settings.global_settings.is_jython
|
||||||
|
|
||||||
pjoin = os.path.join
|
pjoin = os.path.join
|
||||||
|
|
||||||
|
marshal_header_size = 8 if PY2 else 12
|
||||||
|
|
||||||
TEST_CODE = \
|
TEST_CODE = \
|
||||||
r"""
|
r"""
|
||||||
def _TEST():
|
def _TEST():
|
||||||
@@ -456,7 +453,8 @@ def save_pyc(filename):
|
|||||||
"""
|
"""
|
||||||
Bytecode compiles the file `filename`
|
Bytecode compiles the file `filename`
|
||||||
"""
|
"""
|
||||||
py_compile.compile(filename)
|
cfile = "%sc" % filename
|
||||||
|
py_compile.compile(filename, cfile=cfile)
|
||||||
|
|
||||||
|
|
||||||
def read_pyc(filename):
|
def read_pyc(filename):
|
||||||
@@ -470,7 +468,7 @@ def read_pyc(filename):
|
|||||||
data = read_file(filename, 'rb')
|
data = read_file(filename, 'rb')
|
||||||
if not is_gae and data[:4] != imp.get_magic():
|
if not is_gae and data[:4] != imp.get_magic():
|
||||||
raise SystemError('compiled code is incompatible')
|
raise SystemError('compiled code is incompatible')
|
||||||
return marshal.loads(data[8:])
|
return marshal.loads(data[marshal_header_size:])
|
||||||
|
|
||||||
|
|
||||||
def compile_views(folder, skip_failed_views=False):
|
def compile_views(folder, skip_failed_views=False):
|
||||||
|
|||||||
+10
-8
@@ -97,14 +97,19 @@ def parse_version(version):
|
|||||||
return version_tuple
|
return version_tuple
|
||||||
|
|
||||||
|
|
||||||
def read_file(filename, mode='r'):
|
def open_file(filename, mode):
|
||||||
"""Returns content from filename, making sure to close the file explicitly
|
|
||||||
on exit.
|
|
||||||
"""
|
|
||||||
if PY2 or 'b' in mode:
|
if PY2 or 'b' in mode:
|
||||||
f = open(filename, mode)
|
f = open(filename, mode)
|
||||||
else:
|
else:
|
||||||
f = open(filename, mode, encoding="utf8")
|
f = open(filename, mode, encoding="utf8")
|
||||||
|
return f
|
||||||
|
|
||||||
|
|
||||||
|
def read_file(filename, mode='r'):
|
||||||
|
"""Returns content from filename, making sure to close the file explicitly
|
||||||
|
on exit.
|
||||||
|
"""
|
||||||
|
f = open_file(filename, mode)
|
||||||
try:
|
try:
|
||||||
return f.read()
|
return f.read()
|
||||||
finally:
|
finally:
|
||||||
@@ -115,10 +120,7 @@ def write_file(filename, value, mode='w'):
|
|||||||
"""Writes <value> to filename, making sure to close the file
|
"""Writes <value> to filename, making sure to close the file
|
||||||
explicitly on exit.
|
explicitly on exit.
|
||||||
"""
|
"""
|
||||||
if PY2:
|
f = open_file(filename, mode)
|
||||||
f = open(filename, mode)
|
|
||||||
else:
|
|
||||||
f = open(filename, mode, encoding="utf8")
|
|
||||||
try:
|
try:
|
||||||
return f.write(value)
|
return f.write(value)
|
||||||
finally:
|
finally:
|
||||||
|
|||||||
Reference in New Issue
Block a user