Message ID | 1474031901-20941-1-git-send-email-fpa@sbtaqua.com |
---|---|
State | Changes Requested |
Headers | show |
Hello Frederik, On Fri, 16 Sep 2016 15:18:21 +0200, Frederik Aalund wrote: > The PYTHON3_PYC_ONLY option did the following: > * Compile `*.py` into `__pycache__/*.pyc` files > * Delete `*.py` files > > I've changed it to do the following: > * Compile `*.py` into `*.pyc` files > * Delete `*.py` files > > The problem with the old behaviour is that python does *not* look > into the `__pycache__` directory if the `*.py` file is missing. > Python will, however, find a `*.pyc` file where the `*.py` file was > supposed to be. This is by design (PEP 3147). > > The change of behaviour in this patch is accomplished by passing > `legacy=True` to `compileall`. I've adopted `compileall`'s command > line interface for `pycompile` and used `-b` to denote `legacy=True`. > > Signed-off-by: Frederik Aalund <fpa@sbtaqua.com> Thanks for your patch. However, I don't really understand why it is necessary. Even without your patch, the .pyc files for python3 are properly generated in usr/lib/python3/, and there is no __pycache__ folder anywhere. I've built the following configuration: BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2016.08-613-ge98b4dd.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_INIT_NONE=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set BR2_PACKAGE_PYTHON3=y # BR2_PACKAGE_PYTHON3_PY_ONLY is not set BR2_PACKAGE_PYTHON3_PYC_ONLY=y # BR2_PACKAGE_PYTHON3_PY_PYC is not set BR2_PACKAGE_PYTHON_CRCMOD=y # BR2_TARGET_ROOTFS_TAR is not set And it gives the following list of .pyc files in output/target: ./usr/lib/python3.5/http/server.pyc ./usr/lib/python3.5/http/cookiejar.pyc ./usr/lib/python3.5/http/cookies.pyc ./usr/lib/python3.5/http/__init__.pyc ./usr/lib/python3.5/http/client.pyc ./usr/lib/python3.5/chunk.pyc ./usr/lib/python3.5/ctypes/_endian.pyc ./usr/lib/python3.5/ctypes/wintypes.pyc ./usr/lib/python3.5/ctypes/macholib/dyld.pyc ./usr/lib/python3.5/ctypes/macholib/dylib.pyc ./usr/lib/python3.5/ctypes/macholib/__init__.pyc ./usr/lib/python3.5/ctypes/macholib/framework.pyc ./usr/lib/python3.5/ctypes/__init__.pyc ./usr/lib/python3.5/ctypes/util.pyc ./usr/lib/python3.5/dummy_threading.pyc ./usr/lib/python3.5/subprocess.pyc ./usr/lib/python3.5/pipes.pyc ./usr/lib/python3.5/stat.pyc ./usr/lib/python3.5/__phello__.foo.pyc ./usr/lib/python3.5/sre_constants.pyc ./usr/lib/python3.5/urllib/parse.pyc ./usr/lib/python3.5/urllib/error.pyc ./usr/lib/python3.5/urllib/robotparser.pyc ./usr/lib/python3.5/urllib/request.pyc ./usr/lib/python3.5/urllib/__init__.pyc ./usr/lib/python3.5/urllib/response.pyc ./usr/lib/python3.5/copy.pyc ./usr/lib/python3.5/shelve.pyc ./usr/lib/python3.5/hmac.pyc ./usr/lib/python3.5/zipapp.pyc ./usr/lib/python3.5/socket.pyc ./usr/lib/python3.5/sysconfig.pyc ./usr/lib/python3.5/difflib.pyc ./usr/lib/python3.5/opcode.pyc ./usr/lib/python3.5/logging/handlers.pyc ./usr/lib/python3.5/logging/__init__.pyc ./usr/lib/python3.5/logging/config.pyc ./usr/lib/python3.5/hashlib.pyc ./usr/lib/python3.5/optparse.pyc ./usr/lib/python3.5/pydoc.pyc ./usr/lib/python3.5/colorsys.pyc ./usr/lib/python3.5/_sitebuiltins.pyc ./usr/lib/python3.5/csv.pyc ./usr/lib/python3.5/_weakrefset.pyc ./usr/lib/python3.5/pyclbr.pyc ./usr/lib/python3.5/netrc.pyc ./usr/lib/python3.5/copyreg.pyc ./usr/lib/python3.5/_collections_abc.pyc ./usr/lib/python3.5/webbrowser.pyc ./usr/lib/python3.5/_compression.pyc ./usr/lib/python3.5/dis.pyc ./usr/lib/python3.5/traceback.pyc ./usr/lib/python3.5/getpass.pyc ./usr/lib/python3.5/tarfile.pyc ./usr/lib/python3.5/modulefinder.pyc ./usr/lib/python3.5/heapq.pyc ./usr/lib/python3.5/wsgiref/headers.pyc ./usr/lib/python3.5/wsgiref/validate.pyc ./usr/lib/python3.5/wsgiref/handlers.pyc ./usr/lib/python3.5/wsgiref/simple_server.pyc ./usr/lib/python3.5/wsgiref/__init__.pyc ./usr/lib/python3.5/wsgiref/util.pyc ./usr/lib/python3.5/textwrap.pyc ./usr/lib/python3.5/glob.pyc ./usr/lib/python3.5/lib-dynload/sysconfigdata/_sysconfigdata.pyc ./usr/lib/python3.5/xmlrpc/server.pyc ./usr/lib/python3.5/xmlrpc/__init__.pyc ./usr/lib/python3.5/xmlrpc/client.pyc ./usr/lib/python3.5/_markupbase.pyc ./usr/lib/python3.5/wave.pyc ./usr/lib/python3.5/shutil.pyc ./usr/lib/python3.5/uu.pyc ./usr/lib/python3.5/dbm/ndbm.pyc ./usr/lib/python3.5/dbm/dumb.pyc ./usr/lib/python3.5/dbm/__init__.pyc ./usr/lib/python3.5/dbm/gnu.pyc ./usr/lib/python3.5/symtable.pyc ./usr/lib/python3.5/datetime.pyc ./usr/lib/python3.5/_compat_pickle.pyc ./usr/lib/python3.5/locale.pyc ./usr/lib/python3.5/inspect.pyc ./usr/lib/python3.5/queue.pyc ./usr/lib/python3.5/reprlib.pyc ./usr/lib/python3.5/pkgutil.pyc ./usr/lib/python3.5/calendar.pyc ./usr/lib/python3.5/asyncio/subprocess.pyc ./usr/lib/python3.5/asyncio/events.pyc ./usr/lib/python3.5/asyncio/windows_utils.pyc ./usr/lib/python3.5/asyncio/streams.pyc ./usr/lib/python3.5/asyncio/locks.pyc ./usr/lib/python3.5/asyncio/queues.pyc ./usr/lib/python3.5/asyncio/base_subprocess.pyc ./usr/lib/python3.5/asyncio/selector_events.pyc ./usr/lib/python3.5/asyncio/base_events.pyc ./usr/lib/python3.5/asyncio/test_utils.pyc ./usr/lib/python3.5/asyncio/protocols.pyc ./usr/lib/python3.5/asyncio/log.pyc ./usr/lib/python3.5/asyncio/coroutines.pyc ./usr/lib/python3.5/asyncio/compat.pyc ./usr/lib/python3.5/asyncio/constants.pyc ./usr/lib/python3.5/asyncio/__init__.pyc ./usr/lib/python3.5/asyncio/transports.pyc ./usr/lib/python3.5/asyncio/proactor_events.pyc ./usr/lib/python3.5/asyncio/tasks.pyc ./usr/lib/python3.5/asyncio/sslproto.pyc ./usr/lib/python3.5/asyncio/unix_events.pyc ./usr/lib/python3.5/asyncio/windows_events.pyc ./usr/lib/python3.5/asyncio/futures.pyc ./usr/lib/python3.5/runpy.pyc ./usr/lib/python3.5/fnmatch.pyc ./usr/lib/python3.5/enum.pyc ./usr/lib/python3.5/imp.pyc ./usr/lib/python3.5/pstats.pyc ./usr/lib/python3.5/codecs.pyc ./usr/lib/python3.5/filecmp.pyc ./usr/lib/python3.5/venv/__main__.pyc ./usr/lib/python3.5/venv/__init__.pyc ./usr/lib/python3.5/cProfile.pyc ./usr/lib/python3.5/smtpd.pyc ./usr/lib/python3.5/codeop.pyc ./usr/lib/python3.5/trace.pyc ./usr/lib/python3.5/configparser.pyc ./usr/lib/python3.5/telnetlib.pyc ./usr/lib/python3.5/pty.pyc ./usr/lib/python3.5/uuid.pyc ./usr/lib/python3.5/genericpath.pyc ./usr/lib/python3.5/gettext.pyc ./usr/lib/python3.5/json/scanner.pyc ./usr/lib/python3.5/json/tool.pyc ./usr/lib/python3.5/json/decoder.pyc ./usr/lib/python3.5/json/__init__.pyc ./usr/lib/python3.5/json/encoder.pyc ./usr/lib/python3.5/encodings/cp869.pyc ./usr/lib/python3.5/encodings/mac_centeuro.pyc ./usr/lib/python3.5/encodings/iso8859_11.pyc ./usr/lib/python3.5/encodings/iso2022_jp_2004.pyc ./usr/lib/python3.5/encodings/hp_roman8.pyc ./usr/lib/python3.5/encodings/charmap.pyc ./usr/lib/python3.5/encodings/cp1140.pyc ./usr/lib/python3.5/encodings/mac_roman.pyc ./usr/lib/python3.5/encodings/cp860.pyc ./usr/lib/python3.5/encodings/hz.pyc ./usr/lib/python3.5/encodings/iso2022_jp.pyc ./usr/lib/python3.5/encodings/cp037.pyc ./usr/lib/python3.5/encodings/punycode.pyc ./usr/lib/python3.5/encodings/iso8859_6.pyc ./usr/lib/python3.5/encodings/unicode_escape.pyc ./usr/lib/python3.5/encodings/rot_13.pyc ./usr/lib/python3.5/encodings/koi8_r.pyc ./usr/lib/python3.5/encodings/cp720.pyc ./usr/lib/python3.5/encodings/cp500.pyc ./usr/lib/python3.5/encodings/cp1254.pyc ./usr/lib/python3.5/encodings/cp1257.pyc ./usr/lib/python3.5/encodings/iso2022_jp_1.pyc ./usr/lib/python3.5/encodings/cp855.pyc ./usr/lib/python3.5/encodings/iso2022_jp_ext.pyc ./usr/lib/python3.5/encodings/mac_iceland.pyc ./usr/lib/python3.5/encodings/shift_jis_2004.pyc ./usr/lib/python3.5/encodings/cp932.pyc ./usr/lib/python3.5/encodings/latin_1.pyc ./usr/lib/python3.5/encodings/euc_jisx0213.pyc ./usr/lib/python3.5/encodings/uu_codec.pyc ./usr/lib/python3.5/encodings/ascii.pyc ./usr/lib/python3.5/encodings/mac_latin2.pyc ./usr/lib/python3.5/encodings/cp875.pyc ./usr/lib/python3.5/encodings/cp1256.pyc ./usr/lib/python3.5/encodings/gb18030.pyc ./usr/lib/python3.5/encodings/mac_cyrillic.pyc ./usr/lib/python3.5/encodings/cp1258.pyc ./usr/lib/python3.5/encodings/iso8859_8.pyc ./usr/lib/python3.5/encodings/iso8859_13.pyc ./usr/lib/python3.5/encodings/cp862.pyc ./usr/lib/python3.5/encodings/cp852.pyc ./usr/lib/python3.5/encodings/zlib_codec.pyc ./usr/lib/python3.5/encodings/shift_jisx0213.pyc ./usr/lib/python3.5/encodings/koi8_u.pyc ./usr/lib/python3.5/encodings/base64_codec.pyc ./usr/lib/python3.5/encodings/raw_unicode_escape.pyc ./usr/lib/python3.5/encodings/utf_32_be.pyc ./usr/lib/python3.5/encodings/utf_16_be.pyc ./usr/lib/python3.5/encodings/iso2022_jp_2.pyc ./usr/lib/python3.5/encodings/mac_turkish.pyc ./usr/lib/python3.5/encodings/mac_arabic.pyc ./usr/lib/python3.5/encodings/cp1251.pyc ./usr/lib/python3.5/encodings/idna.pyc ./usr/lib/python3.5/encodings/cp857.pyc ./usr/lib/python3.5/encodings/cp858.pyc ./usr/lib/python3.5/encodings/iso8859_15.pyc ./usr/lib/python3.5/encodings/cp737.pyc ./usr/lib/python3.5/encodings/cp863.pyc ./usr/lib/python3.5/encodings/iso8859_1.pyc ./usr/lib/python3.5/encodings/cp1252.pyc ./usr/lib/python3.5/encodings/mac_croatian.pyc ./usr/lib/python3.5/encodings/cp775.pyc ./usr/lib/python3.5/encodings/iso2022_jp_3.pyc ./usr/lib/python3.5/encodings/cp424.pyc ./usr/lib/python3.5/encodings/iso8859_3.pyc ./usr/lib/python3.5/encodings/koi8_t.pyc ./usr/lib/python3.5/encodings/hex_codec.pyc ./usr/lib/python3.5/encodings/iso8859_14.pyc ./usr/lib/python3.5/encodings/euc_jp.pyc ./usr/lib/python3.5/encodings/cp866.pyc ./usr/lib/python3.5/encodings/mbcs.pyc ./usr/lib/python3.5/encodings/euc_jis_2004.pyc ./usr/lib/python3.5/encodings/johab.pyc ./usr/lib/python3.5/encodings/utf_32_le.pyc ./usr/lib/python3.5/encodings/iso2022_kr.pyc ./usr/lib/python3.5/encodings/utf_8_sig.pyc ./usr/lib/python3.5/encodings/cp1250.pyc ./usr/lib/python3.5/encodings/iso8859_16.pyc ./usr/lib/python3.5/encodings/utf_16.pyc ./usr/lib/python3.5/encodings/cp856.pyc ./usr/lib/python3.5/encodings/cp65001.pyc ./usr/lib/python3.5/encodings/cp865.pyc ./usr/lib/python3.5/encodings/mac_farsi.pyc ./usr/lib/python3.5/encodings/kz1048.pyc ./usr/lib/python3.5/encodings/gbk.pyc ./usr/lib/python3.5/encodings/iso8859_4.pyc ./usr/lib/python3.5/encodings/undefined.pyc ./usr/lib/python3.5/encodings/utf_16_le.pyc ./usr/lib/python3.5/encodings/iso8859_5.pyc ./usr/lib/python3.5/encodings/iso8859_7.pyc ./usr/lib/python3.5/encodings/mac_romanian.pyc ./usr/lib/python3.5/encodings/cp874.pyc ./usr/lib/python3.5/encodings/unicode_internal.pyc ./usr/lib/python3.5/encodings/shift_jis.pyc ./usr/lib/python3.5/encodings/mac_greek.pyc ./usr/lib/python3.5/encodings/cp850.pyc ./usr/lib/python3.5/encodings/ptcp154.pyc ./usr/lib/python3.5/encodings/big5.pyc ./usr/lib/python3.5/encodings/cp949.pyc ./usr/lib/python3.5/encodings/aliases.pyc ./usr/lib/python3.5/encodings/__init__.pyc ./usr/lib/python3.5/encodings/palmos.pyc ./usr/lib/python3.5/encodings/cp1006.pyc ./usr/lib/python3.5/encodings/cp864.pyc ./usr/lib/python3.5/encodings/cp437.pyc ./usr/lib/python3.5/encodings/cp950.pyc ./usr/lib/python3.5/encodings/cp1253.pyc ./usr/lib/python3.5/encodings/utf_8.pyc ./usr/lib/python3.5/encodings/euc_kr.pyc ./usr/lib/python3.5/encodings/iso8859_10.pyc ./usr/lib/python3.5/encodings/utf_7.pyc ./usr/lib/python3.5/encodings/cp273.pyc ./usr/lib/python3.5/encodings/quopri_codec.pyc ./usr/lib/python3.5/encodings/cp861.pyc ./usr/lib/python3.5/encodings/cp1026.pyc ./usr/lib/python3.5/encodings/iso8859_9.pyc ./usr/lib/python3.5/encodings/iso8859_2.pyc ./usr/lib/python3.5/encodings/tis_620.pyc ./usr/lib/python3.5/encodings/bz2_codec.pyc ./usr/lib/python3.5/encodings/big5hkscs.pyc ./usr/lib/python3.5/encodings/gb2312.pyc ./usr/lib/python3.5/encodings/cp1255.pyc ./usr/lib/python3.5/encodings/utf_32.pyc ./usr/lib/python3.5/encodings/cp1125.pyc ./usr/lib/python3.5/cgitb.pyc ./usr/lib/python3.5/functools.pyc ./usr/lib/python3.5/_osx_support.pyc ./usr/lib/python3.5/fileinput.pyc ./usr/lib/python3.5/macpath.pyc ./usr/lib/python3.5/bdb.pyc ./usr/lib/python3.5/py_compile.pyc ./usr/lib/python3.5/socketserver.pyc ./usr/lib/python3.5/sched.pyc ./usr/lib/python3.5/plat-linux/IN.pyc ./usr/lib/python3.5/plat-linux/DLFCN.pyc ./usr/lib/python3.5/plat-linux/TYPES.pyc ./usr/lib/python3.5/plat-linux/CDROM.pyc ./usr/lib/python3.5/cmd.pyc ./usr/lib/python3.5/xdrlib.pyc ./usr/lib/python3.5/linecache.pyc ./usr/lib/python3.5/nturl2path.pyc ./usr/lib/python3.5/asynchat.pyc ./usr/lib/python3.5/multiprocessing/popen_fork.pyc ./usr/lib/python3.5/multiprocessing/heap.pyc ./usr/lib/python3.5/multiprocessing/connection.pyc ./usr/lib/python3.5/multiprocessing/pool.pyc ./usr/lib/python3.5/multiprocessing/popen_forkserver.pyc ./usr/lib/python3.5/multiprocessing/queues.pyc ./usr/lib/python3.5/multiprocessing/synchronize.pyc ./usr/lib/python3.5/multiprocessing/popen_spawn_win32.pyc ./usr/lib/python3.5/multiprocessing/reduction.pyc ./usr/lib/python3.5/multiprocessing/resource_sharer.pyc ./usr/lib/python3.5/multiprocessing/process.pyc ./usr/lib/python3.5/multiprocessing/popen_spawn_posix.pyc ./usr/lib/python3.5/multiprocessing/__init__.pyc ./usr/lib/python3.5/multiprocessing/forkserver.pyc ./usr/lib/python3.5/multiprocessing/dummy/connection.pyc ./usr/lib/python3.5/multiprocessing/dummy/__init__.pyc ./usr/lib/python3.5/multiprocessing/util.pyc ./usr/lib/python3.5/multiprocessing/spawn.pyc ./usr/lib/python3.5/multiprocessing/semaphore_tracker.pyc ./usr/lib/python3.5/multiprocessing/sharedctypes.pyc ./usr/lib/python3.5/multiprocessing/context.pyc ./usr/lib/python3.5/multiprocessing/managers.pyc ./usr/lib/python3.5/site.pyc ./usr/lib/python3.5/ftplib.pyc ./usr/lib/python3.5/gzip.pyc ./usr/lib/python3.5/platform.pyc ./usr/lib/python3.5/compileall.pyc ./usr/lib/python3.5/types.pyc ./usr/lib/python3.5/smtplib.pyc ./usr/lib/python3.5/plistlib.pyc ./usr/lib/python3.5/this.pyc ./usr/lib/python3.5/ensurepip/__main__.pyc ./usr/lib/python3.5/ensurepip/_uninstall.pyc ./usr/lib/python3.5/ensurepip/__init__.pyc ./usr/lib/python3.5/binhex.pyc ./usr/lib/python3.5/quopri.pyc ./usr/lib/python3.5/poplib.pyc ./usr/lib/python3.5/symbol.pyc ./usr/lib/python3.5/os.pyc ./usr/lib/python3.5/timeit.pyc ./usr/lib/python3.5/sysconfigdata/_sysconfigdata.pyc ./usr/lib/python3.5/io.pyc ./usr/lib/python3.5/mailcap.pyc ./usr/lib/python3.5/ipaddress.pyc ./usr/lib/python3.5/struct.pyc ./usr/lib/python3.5/turtle.pyc ./usr/lib/python3.5/tokenize.pyc ./usr/lib/python3.5/base64.pyc ./usr/lib/python3.5/tempfile.pyc ./usr/lib/python3.5/sre_parse.pyc ./usr/lib/python3.5/antigravity.pyc ./usr/lib/python3.5/random.pyc ./usr/lib/python3.5/tracemalloc.pyc ./usr/lib/python3.5/__future__.pyc ./usr/lib/python3.5/pdb.pyc ./usr/lib/python3.5/fractions.pyc ./usr/lib/python3.5/cgi.pyc ./usr/lib/python3.5/ast.pyc ./usr/lib/python3.5/statistics.pyc ./usr/lib/python3.5/contextlib.pyc ./usr/lib/python3.5/profile.pyc ./usr/lib/python3.5/_dummy_thread.pyc ./usr/lib/python3.5/html/parser.pyc ./usr/lib/python3.5/html/entities.pyc ./usr/lib/python3.5/html/__init__.pyc ./usr/lib/python3.5/aifc.pyc ./usr/lib/python3.5/mailbox.pyc ./usr/lib/python3.5/weakref.pyc ./usr/lib/python3.5/selectors.pyc ./usr/lib/python3.5/code.pyc ./usr/lib/python3.5/crypt.pyc ./usr/lib/python3.5/rlcompleter.pyc ./usr/lib/python3.5/mimetypes.pyc ./usr/lib/python3.5/stringprep.pyc ./usr/lib/python3.5/lzma.pyc ./usr/lib/python3.5/signal.pyc ./usr/lib/python3.5/warnings.pyc ./usr/lib/python3.5/imghdr.pyc ./usr/lib/python3.5/operator.pyc ./usr/lib/python3.5/sndhdr.pyc ./usr/lib/python3.5/typing.pyc ./usr/lib/python3.5/pickletools.pyc ./usr/lib/python3.5/asyncore.pyc ./usr/lib/python3.5/string.pyc ./usr/lib/python3.5/_bootlocale.pyc ./usr/lib/python3.5/nntplib.pyc ./usr/lib/python3.5/macurl2path.pyc ./usr/lib/python3.5/email/mime/audio.pyc ./usr/lib/python3.5/email/mime/image.pyc ./usr/lib/python3.5/email/mime/message.pyc ./usr/lib/python3.5/email/mime/nonmultipart.pyc ./usr/lib/python3.5/email/mime/base.pyc ./usr/lib/python3.5/email/mime/application.pyc ./usr/lib/python3.5/email/mime/__init__.pyc ./usr/lib/python3.5/email/mime/text.pyc ./usr/lib/python3.5/email/mime/multipart.pyc ./usr/lib/python3.5/email/headerregistry.pyc ./usr/lib/python3.5/email/feedparser.pyc ./usr/lib/python3.5/email/charset.pyc ./usr/lib/python3.5/email/parser.pyc ./usr/lib/python3.5/email/iterators.pyc ./usr/lib/python3.5/email/message.pyc ./usr/lib/python3.5/email/_policybase.pyc ./usr/lib/python3.5/email/policy.pyc ./usr/lib/python3.5/email/base64mime.pyc ./usr/lib/python3.5/email/errors.pyc ./usr/lib/python3.5/email/quoprimime.pyc ./usr/lib/python3.5/email/generator.pyc ./usr/lib/python3.5/email/contentmanager.pyc ./usr/lib/python3.5/email/__init__.pyc ./usr/lib/python3.5/email/_encoded_words.pyc ./usr/lib/python3.5/email/utils.pyc ./usr/lib/python3.5/email/encoders.pyc ./usr/lib/python3.5/email/_header_value_parser.pyc ./usr/lib/python3.5/email/header.pyc ./usr/lib/python3.5/email/_parseaddr.pyc ./usr/lib/python3.5/turtledemo/lindenmayer.pyc ./usr/lib/python3.5/turtledemo/penrose.pyc ./usr/lib/python3.5/turtledemo/chaos.pyc ./usr/lib/python3.5/turtledemo/paint.pyc ./usr/lib/python3.5/turtledemo/__main__.pyc ./usr/lib/python3.5/turtledemo/two_canvases.pyc ./usr/lib/python3.5/turtledemo/clock.pyc ./usr/lib/python3.5/turtledemo/wikipedia.pyc ./usr/lib/python3.5/turtledemo/forest.pyc ./usr/lib/python3.5/turtledemo/bytedesign.pyc ./usr/lib/python3.5/turtledemo/colormixer.pyc ./usr/lib/python3.5/turtledemo/fractalcurves.pyc ./usr/lib/python3.5/turtledemo/minimal_hanoi.pyc ./usr/lib/python3.5/turtledemo/tree.pyc ./usr/lib/python3.5/turtledemo/planet_and_moon.pyc ./usr/lib/python3.5/turtledemo/round_dance.pyc ./usr/lib/python3.5/turtledemo/__init__.pyc ./usr/lib/python3.5/turtledemo/peace.pyc ./usr/lib/python3.5/turtledemo/sorting_animate.pyc ./usr/lib/python3.5/turtledemo/nim.pyc ./usr/lib/python3.5/turtledemo/yinyang.pyc ./usr/lib/python3.5/argparse.pyc ./usr/lib/python3.5/bisect.pyc ./usr/lib/python3.5/imaplib.pyc ./usr/lib/python3.5/bz2.pyc ./usr/lib/python3.5/posixpath.pyc ./usr/lib/python3.5/abc.pyc ./usr/lib/python3.5/_strptime.pyc ./usr/lib/python3.5/_sysconfigdata.pyc ./usr/lib/python3.5/tty.pyc ./usr/lib/python3.5/pprint.pyc ./usr/lib/python3.5/shlex.pyc ./usr/lib/python3.5/ntpath.pyc ./usr/lib/python3.5/decimal.pyc ./usr/lib/python3.5/tabnanny.pyc ./usr/lib/python3.5/formatter.pyc ./usr/lib/python3.5/keyword.pyc ./usr/lib/python3.5/ssl.pyc ./usr/lib/python3.5/sunau.pyc ./usr/lib/python3.5/zipfile.pyc ./usr/lib/python3.5/token.pyc ./usr/lib/python3.5/collections/__main__.pyc ./usr/lib/python3.5/collections/__init__.pyc ./usr/lib/python3.5/collections/abc.pyc ./usr/lib/python3.5/numbers.pyc ./usr/lib/python3.5/_pydecimal.pyc ./usr/lib/python3.5/threading.pyc ./usr/lib/python3.5/_threading_local.pyc ./usr/lib/python3.5/distutils/debug.pyc ./usr/lib/python3.5/distutils/sysconfig.pyc ./usr/lib/python3.5/distutils/command/sdist.pyc ./usr/lib/python3.5/distutils/command/bdist_dumb.pyc ./usr/lib/python3.5/distutils/command/build_clib.pyc ./usr/lib/python3.5/distutils/command/install_data.pyc ./usr/lib/python3.5/distutils/command/bdist_rpm.pyc ./usr/lib/python3.5/distutils/command/bdist_msi.pyc ./usr/lib/python3.5/distutils/command/bdist.pyc ./usr/lib/python3.5/distutils/command/install_headers.pyc ./usr/lib/python3.5/distutils/command/install_scripts.pyc ./usr/lib/python3.5/distutils/command/build_py.pyc ./usr/lib/python3.5/distutils/command/check.pyc ./usr/lib/python3.5/distutils/command/upload.pyc ./usr/lib/python3.5/distutils/command/install_egg_info.pyc ./usr/lib/python3.5/distutils/command/register.pyc ./usr/lib/python3.5/distutils/command/bdist_wininst.pyc ./usr/lib/python3.5/distutils/command/__init__.pyc ./usr/lib/python3.5/distutils/command/install_lib.pyc ./usr/lib/python3.5/distutils/command/build.pyc ./usr/lib/python3.5/distutils/command/install.pyc ./usr/lib/python3.5/distutils/command/clean.pyc ./usr/lib/python3.5/distutils/command/build_ext.pyc ./usr/lib/python3.5/distutils/command/config.pyc ./usr/lib/python3.5/distutils/command/build_scripts.pyc ./usr/lib/python3.5/distutils/text_file.pyc ./usr/lib/python3.5/distutils/versionpredicate.pyc ./usr/lib/python3.5/distutils/version.pyc ./usr/lib/python3.5/distutils/filelist.pyc ./usr/lib/python3.5/distutils/file_util.pyc ./usr/lib/python3.5/distutils/dir_util.pyc ./usr/lib/python3.5/distutils/cmd.pyc ./usr/lib/python3.5/distutils/dep_util.pyc ./usr/lib/python3.5/distutils/_msvccompiler.pyc ./usr/lib/python3.5/distutils/errors.pyc ./usr/lib/python3.5/distutils/fancy_getopt.pyc ./usr/lib/python3.5/distutils/log.pyc ./usr/lib/python3.5/distutils/core.pyc ./usr/lib/python3.5/distutils/extension.pyc ./usr/lib/python3.5/distutils/ccompiler.pyc ./usr/lib/python3.5/distutils/archive_util.pyc ./usr/lib/python3.5/distutils/msvccompiler.pyc ./usr/lib/python3.5/distutils/__init__.pyc ./usr/lib/python3.5/distutils/msvc9compiler.pyc ./usr/lib/python3.5/distutils/util.pyc ./usr/lib/python3.5/distutils/bcppcompiler.pyc ./usr/lib/python3.5/distutils/spawn.pyc ./usr/lib/python3.5/distutils/unixccompiler.pyc ./usr/lib/python3.5/distutils/dist.pyc ./usr/lib/python3.5/distutils/cygwinccompiler.pyc ./usr/lib/python3.5/distutils/config.pyc ./usr/lib/python3.5/re.pyc ./usr/lib/python3.5/unittest/mock.pyc ./usr/lib/python3.5/unittest/suite.pyc ./usr/lib/python3.5/unittest/result.pyc ./usr/lib/python3.5/unittest/__main__.pyc ./usr/lib/python3.5/unittest/signals.pyc ./usr/lib/python3.5/unittest/main.pyc ./usr/lib/python3.5/unittest/loader.pyc ./usr/lib/python3.5/unittest/case.pyc ./usr/lib/python3.5/unittest/__init__.pyc ./usr/lib/python3.5/unittest/util.pyc ./usr/lib/python3.5/unittest/runner.pyc ./usr/lib/python3.5/doctest.pyc ./usr/lib/python3.5/importlib/_bootstrap.pyc ./usr/lib/python3.5/importlib/_bootstrap_external.pyc ./usr/lib/python3.5/importlib/__init__.pyc ./usr/lib/python3.5/importlib/abc.pyc ./usr/lib/python3.5/importlib/util.pyc ./usr/lib/python3.5/importlib/machinery.pyc ./usr/lib/python3.5/_pyio.pyc ./usr/lib/python3.5/pathlib.pyc ./usr/lib/python3.5/site-packages/crcmod/crcmod.pyc ./usr/lib/python3.5/site-packages/crcmod/_crcfunpy.pyc ./usr/lib/python3.5/site-packages/crcmod/predefined.pyc ./usr/lib/python3.5/site-packages/crcmod/test.pyc ./usr/lib/python3.5/site-packages/crcmod/__init__.pyc ./usr/lib/python3.5/pickle.pyc ./usr/lib/python3.5/sre_compile.pyc ./usr/lib/python3.5/getopt.pyc ./usr/lib/python3.5/concurrent/futures/thread.pyc ./usr/lib/python3.5/concurrent/futures/_base.pyc ./usr/lib/python3.5/concurrent/futures/process.pyc ./usr/lib/python3.5/concurrent/futures/__init__.pyc ./usr/lib/python3.5/concurrent/__init__.pyc This looks completely correct to me. Which version of Python is used on your build machine? Do you have any special environment variable defined? Best regards, Thomas
Hi Thomas I just tried again with a completely new OS installation and with the master branch of buildroot. Everything worked as expected. I don't know what was wrong with my previous installation. Sorry about this series of patches. Seemingly, the errors were due to my installation and not due to bugs in buildroot. Thanks for investigating. *Frederik Aalund* Chief Information Officer, Co-owner SBT Aqua Copenhagen, Denmark Mobile: +45 30340086 fpa@sbtaqua.com sbtaqua.com On Sat, 22 Oct 2016 at 22:01 Thomas Petazzoni < thomas.petazzoni@free-electrons.com> wrote: > Hello Frederik, > > On Fri, 16 Sep 2016 15:18:21 +0200, Frederik Aalund wrote: > > The PYTHON3_PYC_ONLY option did the following: > > * Compile `*.py` into `__pycache__/*.pyc` files > > * Delete `*.py` files > > > > I've changed it to do the following: > > * Compile `*.py` into `*.pyc` files > > * Delete `*.py` files > > > > The problem with the old behaviour is that python does *not* look > > into the `__pycache__` directory if the `*.py` file is missing. > > Python will, however, find a `*.pyc` file where the `*.py` file was > > supposed to be. This is by design (PEP 3147). > > > > The change of behaviour in this patch is accomplished by passing > > `legacy=True` to `compileall`. I've adopted `compileall`'s command > > line interface for `pycompile` and used `-b` to denote `legacy=True`. > > > > Signed-off-by: Frederik Aalund <fpa@sbtaqua.com> > > Thanks for your patch. However, I don't really understand why it is > necessary. Even without your patch, the .pyc files for python3 are > properly generated in usr/lib/python3/, and there is no __pycache__ > folder anywhere. > > I've built the following configuration: > > BR2_arm=y > BR2_TOOLCHAIN_EXTERNAL=y > BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y > BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y > BR2_TOOLCHAIN_EXTERNAL_URL=" > http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2016.08-613-ge98b4dd.tar.bz2 > " > BR2_TOOLCHAIN_EXTERNAL_GCC_4_8=y > BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y > BR2_TOOLCHAIN_EXTERNAL_LOCALE=y > # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set > BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y > BR2_TOOLCHAIN_EXTERNAL_CXX=y > BR2_INIT_NONE=y > BR2_SYSTEM_BIN_SH_NONE=y > # BR2_PACKAGE_BUSYBOX is not set > BR2_PACKAGE_PYTHON3=y > # BR2_PACKAGE_PYTHON3_PY_ONLY is not set > BR2_PACKAGE_PYTHON3_PYC_ONLY=y > # BR2_PACKAGE_PYTHON3_PY_PYC is not set > BR2_PACKAGE_PYTHON_CRCMOD=y > # BR2_TARGET_ROOTFS_TAR is not set > > And it gives the following list of .pyc files in output/target: > > ./usr/lib/python3.5/http/server.pyc > ./usr/lib/python3.5/http/cookiejar.pyc > ./usr/lib/python3.5/http/cookies.pyc > ./usr/lib/python3.5/http/__init__.pyc > ./usr/lib/python3.5/http/client.pyc > ./usr/lib/python3.5/chunk.pyc > ./usr/lib/python3.5/ctypes/_endian.pyc > ./usr/lib/python3.5/ctypes/wintypes.pyc > ./usr/lib/python3.5/ctypes/macholib/dyld.pyc > ./usr/lib/python3.5/ctypes/macholib/dylib.pyc > ./usr/lib/python3.5/ctypes/macholib/__init__.pyc > ./usr/lib/python3.5/ctypes/macholib/framework.pyc > ./usr/lib/python3.5/ctypes/__init__.pyc > ./usr/lib/python3.5/ctypes/util.pyc > ./usr/lib/python3.5/dummy_threading.pyc > ./usr/lib/python3.5/subprocess.pyc > ./usr/lib/python3.5/pipes.pyc > ./usr/lib/python3.5/stat.pyc > ./usr/lib/python3.5/__phello__.foo.pyc > ./usr/lib/python3.5/sre_constants.pyc > ./usr/lib/python3.5/urllib/parse.pyc > ./usr/lib/python3.5/urllib/error.pyc > ./usr/lib/python3.5/urllib/robotparser.pyc > ./usr/lib/python3.5/urllib/request.pyc > ./usr/lib/python3.5/urllib/__init__.pyc > ./usr/lib/python3.5/urllib/response.pyc > ./usr/lib/python3.5/copy.pyc > ./usr/lib/python3.5/shelve.pyc > ./usr/lib/python3.5/hmac.pyc > ./usr/lib/python3.5/zipapp.pyc > ./usr/lib/python3.5/socket.pyc > ./usr/lib/python3.5/sysconfig.pyc > ./usr/lib/python3.5/difflib.pyc > ./usr/lib/python3.5/opcode.pyc > ./usr/lib/python3.5/logging/handlers.pyc > ./usr/lib/python3.5/logging/__init__.pyc > ./usr/lib/python3.5/logging/config.pyc > ./usr/lib/python3.5/hashlib.pyc > ./usr/lib/python3.5/optparse.pyc > ./usr/lib/python3.5/pydoc.pyc > ./usr/lib/python3.5/colorsys.pyc > ./usr/lib/python3.5/_sitebuiltins.pyc > ./usr/lib/python3.5/csv.pyc > ./usr/lib/python3.5/_weakrefset.pyc > ./usr/lib/python3.5/pyclbr.pyc > ./usr/lib/python3.5/netrc.pyc > ./usr/lib/python3.5/copyreg.pyc > ./usr/lib/python3.5/_collections_abc.pyc > ./usr/lib/python3.5/webbrowser.pyc > ./usr/lib/python3.5/_compression.pyc > ./usr/lib/python3.5/dis.pyc > ./usr/lib/python3.5/traceback.pyc > ./usr/lib/python3.5/getpass.pyc > ./usr/lib/python3.5/tarfile.pyc > ./usr/lib/python3.5/modulefinder.pyc > ./usr/lib/python3.5/heapq.pyc > ./usr/lib/python3.5/wsgiref/headers.pyc > ./usr/lib/python3.5/wsgiref/validate.pyc > ./usr/lib/python3.5/wsgiref/handlers.pyc > ./usr/lib/python3.5/wsgiref/simple_server.pyc > ./usr/lib/python3.5/wsgiref/__init__.pyc > ./usr/lib/python3.5/wsgiref/util.pyc > ./usr/lib/python3.5/textwrap.pyc > ./usr/lib/python3.5/glob.pyc > ./usr/lib/python3.5/lib-dynload/sysconfigdata/_sysconfigdata.pyc > ./usr/lib/python3.5/xmlrpc/server.pyc > ./usr/lib/python3.5/xmlrpc/__init__.pyc > ./usr/lib/python3.5/xmlrpc/client.pyc > ./usr/lib/python3.5/_markupbase.pyc > ./usr/lib/python3.5/wave.pyc > ./usr/lib/python3.5/shutil.pyc > ./usr/lib/python3.5/uu.pyc > ./usr/lib/python3.5/dbm/ndbm.pyc > ./usr/lib/python3.5/dbm/dumb.pyc > ./usr/lib/python3.5/dbm/__init__.pyc > ./usr/lib/python3.5/dbm/gnu.pyc > ./usr/lib/python3.5/symtable.pyc > ./usr/lib/python3.5/datetime.pyc > ./usr/lib/python3.5/_compat_pickle.pyc > ./usr/lib/python3.5/locale.pyc > ./usr/lib/python3.5/inspect.pyc > ./usr/lib/python3.5/queue.pyc > ./usr/lib/python3.5/reprlib.pyc > ./usr/lib/python3.5/pkgutil.pyc > ./usr/lib/python3.5/calendar.pyc > ./usr/lib/python3.5/asyncio/subprocess.pyc > ./usr/lib/python3.5/asyncio/events.pyc > ./usr/lib/python3.5/asyncio/windows_utils.pyc > ./usr/lib/python3.5/asyncio/streams.pyc > ./usr/lib/python3.5/asyncio/locks.pyc > ./usr/lib/python3.5/asyncio/queues.pyc > ./usr/lib/python3.5/asyncio/base_subprocess.pyc > ./usr/lib/python3.5/asyncio/selector_events.pyc > ./usr/lib/python3.5/asyncio/base_events.pyc > ./usr/lib/python3.5/asyncio/test_utils.pyc > ./usr/lib/python3.5/asyncio/protocols.pyc > ./usr/lib/python3.5/asyncio/log.pyc > ./usr/lib/python3.5/asyncio/coroutines.pyc > ./usr/lib/python3.5/asyncio/compat.pyc > ./usr/lib/python3.5/asyncio/constants.pyc > ./usr/lib/python3.5/asyncio/__init__.pyc > ./usr/lib/python3.5/asyncio/transports.pyc > ./usr/lib/python3.5/asyncio/proactor_events.pyc > ./usr/lib/python3.5/asyncio/tasks.pyc > ./usr/lib/python3.5/asyncio/sslproto.pyc > ./usr/lib/python3.5/asyncio/unix_events.pyc > ./usr/lib/python3.5/asyncio/windows_events.pyc > ./usr/lib/python3.5/asyncio/futures.pyc > ./usr/lib/python3.5/runpy.pyc > ./usr/lib/python3.5/fnmatch.pyc > ./usr/lib/python3.5/enum.pyc > ./usr/lib/python3.5/imp.pyc > ./usr/lib/python3.5/pstats.pyc > ./usr/lib/python3.5/codecs.pyc > ./usr/lib/python3.5/filecmp.pyc > ./usr/lib/python3.5/venv/__main__.pyc > ./usr/lib/python3.5/venv/__init__.pyc > ./usr/lib/python3.5/cProfile.pyc > ./usr/lib/python3.5/smtpd.pyc > ./usr/lib/python3.5/codeop.pyc > ./usr/lib/python3.5/trace.pyc > ./usr/lib/python3.5/configparser.pyc > ./usr/lib/python3.5/telnetlib.pyc > ./usr/lib/python3.5/pty.pyc > ./usr/lib/python3.5/uuid.pyc > ./usr/lib/python3.5/genericpath.pyc > ./usr/lib/python3.5/gettext.pyc > ./usr/lib/python3.5/json/scanner.pyc > ./usr/lib/python3.5/json/tool.pyc > ./usr/lib/python3.5/json/decoder.pyc > ./usr/lib/python3.5/json/__init__.pyc > ./usr/lib/python3.5/json/encoder.pyc > ./usr/lib/python3.5/encodings/cp869.pyc > ./usr/lib/python3.5/encodings/mac_centeuro.pyc > ./usr/lib/python3.5/encodings/iso8859_11.pyc > ./usr/lib/python3.5/encodings/iso2022_jp_2004.pyc > ./usr/lib/python3.5/encodings/hp_roman8.pyc > ./usr/lib/python3.5/encodings/charmap.pyc > ./usr/lib/python3.5/encodings/cp1140.pyc > ./usr/lib/python3.5/encodings/mac_roman.pyc > ./usr/lib/python3.5/encodings/cp860.pyc > ./usr/lib/python3.5/encodings/hz.pyc > ./usr/lib/python3.5/encodings/iso2022_jp.pyc > ./usr/lib/python3.5/encodings/cp037.pyc > ./usr/lib/python3.5/encodings/punycode.pyc > ./usr/lib/python3.5/encodings/iso8859_6.pyc > ./usr/lib/python3.5/encodings/unicode_escape.pyc > ./usr/lib/python3.5/encodings/rot_13.pyc > ./usr/lib/python3.5/encodings/koi8_r.pyc > ./usr/lib/python3.5/encodings/cp720.pyc > ./usr/lib/python3.5/encodings/cp500.pyc > ./usr/lib/python3.5/encodings/cp1254.pyc > ./usr/lib/python3.5/encodings/cp1257.pyc > ./usr/lib/python3.5/encodings/iso2022_jp_1.pyc > ./usr/lib/python3.5/encodings/cp855.pyc > ./usr/lib/python3.5/encodings/iso2022_jp_ext.pyc > ./usr/lib/python3.5/encodings/mac_iceland.pyc > ./usr/lib/python3.5/encodings/shift_jis_2004.pyc > ./usr/lib/python3.5/encodings/cp932.pyc > ./usr/lib/python3.5/encodings/latin_1.pyc > ./usr/lib/python3.5/encodings/euc_jisx0213.pyc > ./usr/lib/python3.5/encodings/uu_codec.pyc > ./usr/lib/python3.5/encodings/ascii.pyc > ./usr/lib/python3.5/encodings/mac_latin2.pyc > ./usr/lib/python3.5/encodings/cp875.pyc > ./usr/lib/python3.5/encodings/cp1256.pyc > ./usr/lib/python3.5/encodings/gb18030.pyc > ./usr/lib/python3.5/encodings/mac_cyrillic.pyc > ./usr/lib/python3.5/encodings/cp1258.pyc > ./usr/lib/python3.5/encodings/iso8859_8.pyc > ./usr/lib/python3.5/encodings/iso8859_13.pyc > ./usr/lib/python3.5/encodings/cp862.pyc > ./usr/lib/python3.5/encodings/cp852.pyc > ./usr/lib/python3.5/encodings/zlib_codec.pyc > ./usr/lib/python3.5/encodings/shift_jisx0213.pyc > ./usr/lib/python3.5/encodings/koi8_u.pyc > ./usr/lib/python3.5/encodings/base64_codec.pyc > ./usr/lib/python3.5/encodings/raw_unicode_escape.pyc > ./usr/lib/python3.5/encodings/utf_32_be.pyc > ./usr/lib/python3.5/encodings/utf_16_be.pyc > ./usr/lib/python3.5/encodings/iso2022_jp_2.pyc > ./usr/lib/python3.5/encodings/mac_turkish.pyc > ./usr/lib/python3.5/encodings/mac_arabic.pyc > ./usr/lib/python3.5/encodings/cp1251.pyc > ./usr/lib/python3.5/encodings/idna.pyc > ./usr/lib/python3.5/encodings/cp857.pyc > ./usr/lib/python3.5/encodings/cp858.pyc > ./usr/lib/python3.5/encodings/iso8859_15.pyc > ./usr/lib/python3.5/encodings/cp737.pyc > ./usr/lib/python3.5/encodings/cp863.pyc > ./usr/lib/python3.5/encodings/iso8859_1.pyc > ./usr/lib/python3.5/encodings/cp1252.pyc > ./usr/lib/python3.5/encodings/mac_croatian.pyc > ./usr/lib/python3.5/encodings/cp775.pyc > ./usr/lib/python3.5/encodings/iso2022_jp_3.pyc > ./usr/lib/python3.5/encodings/cp424.pyc > ./usr/lib/python3.5/encodings/iso8859_3.pyc > ./usr/lib/python3.5/encodings/koi8_t.pyc > ./usr/lib/python3.5/encodings/hex_codec.pyc > ./usr/lib/python3.5/encodings/iso8859_14.pyc > ./usr/lib/python3.5/encodings/euc_jp.pyc > ./usr/lib/python3.5/encodings/cp866.pyc > ./usr/lib/python3.5/encodings/mbcs.pyc > ./usr/lib/python3.5/encodings/euc_jis_2004.pyc > ./usr/lib/python3.5/encodings/johab.pyc > ./usr/lib/python3.5/encodings/utf_32_le.pyc > ./usr/lib/python3.5/encodings/iso2022_kr.pyc > ./usr/lib/python3.5/encodings/utf_8_sig.pyc > ./usr/lib/python3.5/encodings/cp1250.pyc > ./usr/lib/python3.5/encodings/iso8859_16.pyc > ./usr/lib/python3.5/encodings/utf_16.pyc > ./usr/lib/python3.5/encodings/cp856.pyc > ./usr/lib/python3.5/encodings/cp65001.pyc > ./usr/lib/python3.5/encodings/cp865.pyc > ./usr/lib/python3.5/encodings/mac_farsi.pyc > ./usr/lib/python3.5/encodings/kz1048.pyc > ./usr/lib/python3.5/encodings/gbk.pyc > ./usr/lib/python3.5/encodings/iso8859_4.pyc > ./usr/lib/python3.5/encodings/undefined.pyc > ./usr/lib/python3.5/encodings/utf_16_le.pyc > ./usr/lib/python3.5/encodings/iso8859_5.pyc > ./usr/lib/python3.5/encodings/iso8859_7.pyc > ./usr/lib/python3.5/encodings/mac_romanian.pyc > ./usr/lib/python3.5/encodings/cp874.pyc > ./usr/lib/python3.5/encodings/unicode_internal.pyc > ./usr/lib/python3.5/encodings/shift_jis.pyc > ./usr/lib/python3.5/encodings/mac_greek.pyc > ./usr/lib/python3.5/encodings/cp850.pyc > ./usr/lib/python3.5/encodings/ptcp154.pyc > ./usr/lib/python3.5/encodings/big5.pyc > ./usr/lib/python3.5/encodings/cp949.pyc > ./usr/lib/python3.5/encodings/aliases.pyc > ./usr/lib/python3.5/encodings/__init__.pyc > ./usr/lib/python3.5/encodings/palmos.pyc > ./usr/lib/python3.5/encodings/cp1006.pyc > ./usr/lib/python3.5/encodings/cp864.pyc > ./usr/lib/python3.5/encodings/cp437.pyc > ./usr/lib/python3.5/encodings/cp950.pyc > ./usr/lib/python3.5/encodings/cp1253.pyc > ./usr/lib/python3.5/encodings/utf_8.pyc > ./usr/lib/python3.5/encodings/euc_kr.pyc > ./usr/lib/python3.5/encodings/iso8859_10.pyc > ./usr/lib/python3.5/encodings/utf_7.pyc > ./usr/lib/python3.5/encodings/cp273.pyc > ./usr/lib/python3.5/encodings/quopri_codec.pyc > ./usr/lib/python3.5/encodings/cp861.pyc > ./usr/lib/python3.5/encodings/cp1026.pyc > ./usr/lib/python3.5/encodings/iso8859_9.pyc > ./usr/lib/python3.5/encodings/iso8859_2.pyc > ./usr/lib/python3.5/encodings/tis_620.pyc > ./usr/lib/python3.5/encodings/bz2_codec.pyc > ./usr/lib/python3.5/encodings/big5hkscs.pyc > ./usr/lib/python3.5/encodings/gb2312.pyc > ./usr/lib/python3.5/encodings/cp1255.pyc > ./usr/lib/python3.5/encodings/utf_32.pyc > ./usr/lib/python3.5/encodings/cp1125.pyc > ./usr/lib/python3.5/cgitb.pyc > ./usr/lib/python3.5/functools.pyc > ./usr/lib/python3.5/_osx_support.pyc > ./usr/lib/python3.5/fileinput.pyc > ./usr/lib/python3.5/macpath.pyc > ./usr/lib/python3.5/bdb.pyc > ./usr/lib/python3.5/py_compile.pyc > ./usr/lib/python3.5/socketserver.pyc > ./usr/lib/python3.5/sched.pyc > ./usr/lib/python3.5/plat-linux/IN.pyc > ./usr/lib/python3.5/plat-linux/DLFCN.pyc > ./usr/lib/python3.5/plat-linux/TYPES.pyc > ./usr/lib/python3.5/plat-linux/CDROM.pyc > ./usr/lib/python3.5/cmd.pyc > ./usr/lib/python3.5/xdrlib.pyc > ./usr/lib/python3.5/linecache.pyc > ./usr/lib/python3.5/nturl2path.pyc > ./usr/lib/python3.5/asynchat.pyc > ./usr/lib/python3.5/multiprocessing/popen_fork.pyc > ./usr/lib/python3.5/multiprocessing/heap.pyc > ./usr/lib/python3.5/multiprocessing/connection.pyc > ./usr/lib/python3.5/multiprocessing/pool.pyc > ./usr/lib/python3.5/multiprocessing/popen_forkserver.pyc > ./usr/lib/python3.5/multiprocessing/queues.pyc > ./usr/lib/python3.5/multiprocessing/synchronize.pyc > ./usr/lib/python3.5/multiprocessing/popen_spawn_win32.pyc > ./usr/lib/python3.5/multiprocessing/reduction.pyc > ./usr/lib/python3.5/multiprocessing/resource_sharer.pyc > ./usr/lib/python3.5/multiprocessing/process.pyc > ./usr/lib/python3.5/multiprocessing/popen_spawn_posix.pyc > ./usr/lib/python3.5/multiprocessing/__init__.pyc > ./usr/lib/python3.5/multiprocessing/forkserver.pyc > ./usr/lib/python3.5/multiprocessing/dummy/connection.pyc > ./usr/lib/python3.5/multiprocessing/dummy/__init__.pyc > ./usr/lib/python3.5/multiprocessing/util.pyc > ./usr/lib/python3.5/multiprocessing/spawn.pyc > ./usr/lib/python3.5/multiprocessing/semaphore_tracker.pyc > ./usr/lib/python3.5/multiprocessing/sharedctypes.pyc > ./usr/lib/python3.5/multiprocessing/context.pyc > ./usr/lib/python3.5/multiprocessing/managers.pyc > ./usr/lib/python3.5/site.pyc > ./usr/lib/python3.5/ftplib.pyc > ./usr/lib/python3.5/gzip.pyc > ./usr/lib/python3.5/platform.pyc > ./usr/lib/python3.5/compileall.pyc > ./usr/lib/python3.5/types.pyc > ./usr/lib/python3.5/smtplib.pyc > ./usr/lib/python3.5/plistlib.pyc > ./usr/lib/python3.5/this.pyc > ./usr/lib/python3.5/ensurepip/__main__.pyc > ./usr/lib/python3.5/ensurepip/_uninstall.pyc > ./usr/lib/python3.5/ensurepip/__init__.pyc > ./usr/lib/python3.5/binhex.pyc > ./usr/lib/python3.5/quopri.pyc > ./usr/lib/python3.5/poplib.pyc > ./usr/lib/python3.5/symbol.pyc > ./usr/lib/python3.5/os.pyc > ./usr/lib/python3.5/timeit.pyc > ./usr/lib/python3.5/sysconfigdata/_sysconfigdata.pyc > ./usr/lib/python3.5/io.pyc > ./usr/lib/python3.5/mailcap.pyc > ./usr/lib/python3.5/ipaddress.pyc > ./usr/lib/python3.5/struct.pyc > ./usr/lib/python3.5/turtle.pyc > ./usr/lib/python3.5/tokenize.pyc > ./usr/lib/python3.5/base64.pyc > ./usr/lib/python3.5/tempfile.pyc > ./usr/lib/python3.5/sre_parse.pyc > ./usr/lib/python3.5/antigravity.pyc > ./usr/lib/python3.5/random.pyc > ./usr/lib/python3.5/tracemalloc.pyc > ./usr/lib/python3.5/__future__.pyc > ./usr/lib/python3.5/pdb.pyc > ./usr/lib/python3.5/fractions.pyc > ./usr/lib/python3.5/cgi.pyc > ./usr/lib/python3.5/ast.pyc > ./usr/lib/python3.5/statistics.pyc > ./usr/lib/python3.5/contextlib.pyc > ./usr/lib/python3.5/profile.pyc > ./usr/lib/python3.5/_dummy_thread.pyc > ./usr/lib/python3.5/html/parser.pyc > ./usr/lib/python3.5/html/entities.pyc > ./usr/lib/python3.5/html/__init__.pyc > ./usr/lib/python3.5/aifc.pyc > ./usr/lib/python3.5/mailbox.pyc > ./usr/lib/python3.5/weakref.pyc > ./usr/lib/python3.5/selectors.pyc > ./usr/lib/python3.5/code.pyc > ./usr/lib/python3.5/crypt.pyc > ./usr/lib/python3.5/rlcompleter.pyc > ./usr/lib/python3.5/mimetypes.pyc > ./usr/lib/python3.5/stringprep.pyc > ./usr/lib/python3.5/lzma.pyc > ./usr/lib/python3.5/signal.pyc > ./usr/lib/python3.5/warnings.pyc > ./usr/lib/python3.5/imghdr.pyc > ./usr/lib/python3.5/operator.pyc > ./usr/lib/python3.5/sndhdr.pyc > ./usr/lib/python3.5/typing.pyc > ./usr/lib/python3.5/pickletools.pyc > ./usr/lib/python3.5/asyncore.pyc > ./usr/lib/python3.5/string.pyc > ./usr/lib/python3.5/_bootlocale.pyc > ./usr/lib/python3.5/nntplib.pyc > ./usr/lib/python3.5/macurl2path.pyc > ./usr/lib/python3.5/email/mime/audio.pyc > ./usr/lib/python3.5/email/mime/image.pyc > ./usr/lib/python3.5/email/mime/message.pyc > ./usr/lib/python3.5/email/mime/nonmultipart.pyc > ./usr/lib/python3.5/email/mime/base.pyc > ./usr/lib/python3.5/email/mime/application.pyc > ./usr/lib/python3.5/email/mime/__init__.pyc > ./usr/lib/python3.5/email/mime/text.pyc > ./usr/lib/python3.5/email/mime/multipart.pyc > ./usr/lib/python3.5/email/headerregistry.pyc > ./usr/lib/python3.5/email/feedparser.pyc > ./usr/lib/python3.5/email/charset.pyc > ./usr/lib/python3.5/email/parser.pyc > ./usr/lib/python3.5/email/iterators.pyc > ./usr/lib/python3.5/email/message.pyc > ./usr/lib/python3.5/email/_policybase.pyc > ./usr/lib/python3.5/email/policy.pyc > ./usr/lib/python3.5/email/base64mime.pyc > ./usr/lib/python3.5/email/errors.pyc > ./usr/lib/python3.5/email/quoprimime.pyc > ./usr/lib/python3.5/email/generator.pyc > ./usr/lib/python3.5/email/contentmanager.pyc > ./usr/lib/python3.5/email/__init__.pyc > ./usr/lib/python3.5/email/_encoded_words.pyc > ./usr/lib/python3.5/email/utils.pyc > ./usr/lib/python3.5/email/encoders.pyc > ./usr/lib/python3.5/email/_header_value_parser.pyc > ./usr/lib/python3.5/email/header.pyc > ./usr/lib/python3.5/email/_parseaddr.pyc > ./usr/lib/python3.5/turtledemo/lindenmayer.pyc > ./usr/lib/python3.5/turtledemo/penrose.pyc > ./usr/lib/python3.5/turtledemo/chaos.pyc > ./usr/lib/python3.5/turtledemo/paint.pyc > ./usr/lib/python3.5/turtledemo/__main__.pyc > ./usr/lib/python3.5/turtledemo/two_canvases.pyc > ./usr/lib/python3.5/turtledemo/clock.pyc > ./usr/lib/python3.5/turtledemo/wikipedia.pyc > ./usr/lib/python3.5/turtledemo/forest.pyc > ./usr/lib/python3.5/turtledemo/bytedesign.pyc > ./usr/lib/python3.5/turtledemo/colormixer.pyc > ./usr/lib/python3.5/turtledemo/fractalcurves.pyc > ./usr/lib/python3.5/turtledemo/minimal_hanoi.pyc > ./usr/lib/python3.5/turtledemo/tree.pyc > ./usr/lib/python3.5/turtledemo/planet_and_moon.pyc > ./usr/lib/python3.5/turtledemo/round_dance.pyc > ./usr/lib/python3.5/turtledemo/__init__.pyc > ./usr/lib/python3.5/turtledemo/peace.pyc > ./usr/lib/python3.5/turtledemo/sorting_animate.pyc > ./usr/lib/python3.5/turtledemo/nim.pyc > ./usr/lib/python3.5/turtledemo/yinyang.pyc > ./usr/lib/python3.5/argparse.pyc > ./usr/lib/python3.5/bisect.pyc > ./usr/lib/python3.5/imaplib.pyc > ./usr/lib/python3.5/bz2.pyc > ./usr/lib/python3.5/posixpath.pyc > ./usr/lib/python3.5/abc.pyc > ./usr/lib/python3.5/_strptime.pyc > ./usr/lib/python3.5/_sysconfigdata.pyc > ./usr/lib/python3.5/tty.pyc > ./usr/lib/python3.5/pprint.pyc > ./usr/lib/python3.5/shlex.pyc > ./usr/lib/python3.5/ntpath.pyc > ./usr/lib/python3.5/decimal.pyc > ./usr/lib/python3.5/tabnanny.pyc > ./usr/lib/python3.5/formatter.pyc > ./usr/lib/python3.5/keyword.pyc > ./usr/lib/python3.5/ssl.pyc > ./usr/lib/python3.5/sunau.pyc > ./usr/lib/python3.5/zipfile.pyc > ./usr/lib/python3.5/token.pyc > ./usr/lib/python3.5/collections/__main__.pyc > ./usr/lib/python3.5/collections/__init__.pyc > ./usr/lib/python3.5/collections/abc.pyc > ./usr/lib/python3.5/numbers.pyc > ./usr/lib/python3.5/_pydecimal.pyc > ./usr/lib/python3.5/threading.pyc > ./usr/lib/python3.5/_threading_local.pyc > ./usr/lib/python3.5/distutils/debug.pyc > ./usr/lib/python3.5/distutils/sysconfig.pyc > ./usr/lib/python3.5/distutils/command/sdist.pyc > ./usr/lib/python3.5/distutils/command/bdist_dumb.pyc > ./usr/lib/python3.5/distutils/command/build_clib.pyc > ./usr/lib/python3.5/distutils/command/install_data.pyc > ./usr/lib/python3.5/distutils/command/bdist_rpm.pyc > ./usr/lib/python3.5/distutils/command/bdist_msi.pyc > ./usr/lib/python3.5/distutils/command/bdist.pyc > ./usr/lib/python3.5/distutils/command/install_headers.pyc > ./usr/lib/python3.5/distutils/command/install_scripts.pyc > ./usr/lib/python3.5/distutils/command/build_py.pyc > ./usr/lib/python3.5/distutils/command/check.pyc > ./usr/lib/python3.5/distutils/command/upload.pyc > ./usr/lib/python3.5/distutils/command/install_egg_info.pyc > ./usr/lib/python3.5/distutils/command/register.pyc > ./usr/lib/python3.5/distutils/command/bdist_wininst.pyc > ./usr/lib/python3.5/distutils/command/__init__.pyc > ./usr/lib/python3.5/distutils/command/install_lib.pyc > ./usr/lib/python3.5/distutils/command/build.pyc > ./usr/lib/python3.5/distutils/command/install.pyc > ./usr/lib/python3.5/distutils/command/clean.pyc > ./usr/lib/python3.5/distutils/command/build_ext.pyc > ./usr/lib/python3.5/distutils/command/config.pyc > ./usr/lib/python3.5/distutils/command/build_scripts.pyc > ./usr/lib/python3.5/distutils/text_file.pyc > ./usr/lib/python3.5/distutils/versionpredicate.pyc > ./usr/lib/python3.5/distutils/version.pyc > ./usr/lib/python3.5/distutils/filelist.pyc > ./usr/lib/python3.5/distutils/file_util.pyc > ./usr/lib/python3.5/distutils/dir_util.pyc > ./usr/lib/python3.5/distutils/cmd.pyc > ./usr/lib/python3.5/distutils/dep_util.pyc > ./usr/lib/python3.5/distutils/_msvccompiler.pyc > ./usr/lib/python3.5/distutils/errors.pyc > ./usr/lib/python3.5/distutils/fancy_getopt.pyc > ./usr/lib/python3.5/distutils/log.pyc > ./usr/lib/python3.5/distutils/core.pyc > ./usr/lib/python3.5/distutils/extension.pyc > ./usr/lib/python3.5/distutils/ccompiler.pyc > ./usr/lib/python3.5/distutils/archive_util.pyc > ./usr/lib/python3.5/distutils/msvccompiler.pyc > ./usr/lib/python3.5/distutils/__init__.pyc > ./usr/lib/python3.5/distutils/msvc9compiler.pyc > ./usr/lib/python3.5/distutils/util.pyc > ./usr/lib/python3.5/distutils/bcppcompiler.pyc > ./usr/lib/python3.5/distutils/spawn.pyc > ./usr/lib/python3.5/distutils/unixccompiler.pyc > ./usr/lib/python3.5/distutils/dist.pyc > ./usr/lib/python3.5/distutils/cygwinccompiler.pyc > ./usr/lib/python3.5/distutils/config.pyc > ./usr/lib/python3.5/re.pyc > ./usr/lib/python3.5/unittest/mock.pyc > ./usr/lib/python3.5/unittest/suite.pyc > ./usr/lib/python3.5/unittest/result.pyc > ./usr/lib/python3.5/unittest/__main__.pyc > ./usr/lib/python3.5/unittest/signals.pyc > ./usr/lib/python3.5/unittest/main.pyc > ./usr/lib/python3.5/unittest/loader.pyc > ./usr/lib/python3.5/unittest/case.pyc > ./usr/lib/python3.5/unittest/__init__.pyc > ./usr/lib/python3.5/unittest/util.pyc > ./usr/lib/python3.5/unittest/runner.pyc > ./usr/lib/python3.5/doctest.pyc > ./usr/lib/python3.5/importlib/_bootstrap.pyc > ./usr/lib/python3.5/importlib/_bootstrap_external.pyc > ./usr/lib/python3.5/importlib/__init__.pyc > ./usr/lib/python3.5/importlib/abc.pyc > ./usr/lib/python3.5/importlib/util.pyc > ./usr/lib/python3.5/importlib/machinery.pyc > ./usr/lib/python3.5/_pyio.pyc > ./usr/lib/python3.5/pathlib.pyc > ./usr/lib/python3.5/site-packages/crcmod/crcmod.pyc > ./usr/lib/python3.5/site-packages/crcmod/_crcfunpy.pyc > ./usr/lib/python3.5/site-packages/crcmod/predefined.pyc > ./usr/lib/python3.5/site-packages/crcmod/test.pyc > ./usr/lib/python3.5/site-packages/crcmod/__init__.pyc > ./usr/lib/python3.5/pickle.pyc > ./usr/lib/python3.5/sre_compile.pyc > ./usr/lib/python3.5/getopt.pyc > ./usr/lib/python3.5/concurrent/futures/thread.pyc > ./usr/lib/python3.5/concurrent/futures/_base.pyc > ./usr/lib/python3.5/concurrent/futures/process.pyc > ./usr/lib/python3.5/concurrent/futures/__init__.pyc > ./usr/lib/python3.5/concurrent/__init__.pyc > > This looks completely correct to me. > > Which version of Python is used on your build machine? Do you have any > special environment variable defined? > > Best regards, > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com >
diff --git a/package/python3/python3.mk b/package/python3/python3.mk index 34e1297..1b63f95 100644 --- a/package/python3/python3.mk +++ b/package/python3/python3.mk @@ -213,7 +213,8 @@ define PYTHON3_CREATE_PYC_FILES PYTHONPATH="$(PYTHON3_PATH)" \ $(HOST_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR) \ support/scripts/pycompile.py \ - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) + $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR) \ + $(PYTHON3_PYCOMPILE_ARGS) endef ifeq ($(BR2_PACKAGE_PYTHON3_PYC_ONLY)$(BR2_PACKAGE_PYTHON3_PY_PYC),y) @@ -226,6 +227,7 @@ define PYTHON3_REMOVE_PY_FILES xargs -0 --no-run-if-empty rm -f endef PYTHON3_TARGET_FINALIZE_HOOKS += PYTHON3_REMOVE_PY_FILES +PYTHON3_PYCOMPILE_ARGS += -b endif # Normally, *.pyc files should not have been compiled, but just in diff --git a/support/scripts/pycompile.py b/support/scripts/pycompile.py index fde711a..f9dee7f 100644 --- a/support/scripts/pycompile.py +++ b/support/scripts/pycompile.py @@ -21,4 +21,7 @@ class ReportProblem: report_problem = ReportProblem() -compileall.compile_dir(sys.argv[1], quiet=report_problem) +# Pass along the legacy parameter +legacy = '-b' in sys.argv + +compileall.compile_dir(sys.argv[1], legacy=legacy, quiet=report_problem)
The PYTHON3_PYC_ONLY option did the following: * Compile `*.py` into `__pycache__/*.pyc` files * Delete `*.py` files I've changed it to do the following: * Compile `*.py` into `*.pyc` files * Delete `*.py` files The problem with the old behaviour is that python does *not* look into the `__pycache__` directory if the `*.py` file is missing. Python will, however, find a `*.pyc` file where the `*.py` file was supposed to be. This is by design (PEP 3147). The change of behaviour in this patch is accomplished by passing `legacy=True` to `compileall`. I've adopted `compileall`'s command line interface for `pycompile` and used `-b` to denote `legacy=True`. Signed-off-by: Frederik Aalund <fpa@sbtaqua.com> --- package/python3/python3.mk | 4 +++- support/scripts/pycompile.py | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-)