• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login
UBports Robot Logo UBports Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login

clickable and Python/QML App ImportError: No module named 'encodings'

Scheduled Pinned Locked Moved App Development
10 Posts 3 Posters 1.5k Views 1 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R Offline
      ropod7
      last edited by ropod7 21 Sept 2018, 14:01

      Platform: --xenial.

      I'm trying to launch simple 'Hello World' app from touch panel, but logs shows that there is:
      Fatal Python error: Py_Initialize: Unable to get the locale encoding
      ImportError: No module named 'encodings'

      From the console python and app launches very well, but not from click panel. I'm trying to dig into app.apparmor policy groups, but there nothing to add in this case. Also I had seen that in the app directory is lib/arm-linux-gnueabihf which contains libpython3.4m* libraries.

      There is also /userdata/systme-data path, but there nothing in this case to import anything for python only etc/:opt/ and var/ system dirs.

      So my questions are:

      1. Which user is launching apps from panel?
      2. How does apparmor participates in this process?
      3. Which python package participates in this process and from which directory?
        Following from previous questions:
      4. How to permit process which launching apps to read $PATH and $PYTHONPATH variables and to get everything what python needs?
      N 1 Reply Last reply 21 Sept 2018, 20:03 Reply Quote 0
      • N Offline
        neopar @ropod7
        last edited by 21 Sept 2018, 20:03

        @ropod7 I ran into same errors when I tried to use clickable app template. It is not ported to xenial.

        So just use python build template and remove local python libs.

        R 1 Reply Last reply 21 Sept 2018, 20:18 Reply Quote 1
        • R Offline
          ropod7 @neopar
          last edited by 21 Sept 2018, 20:18

          @neopar Thank you. It works. Just removed lib/ directory from project.

          1 Reply Last reply Reply Quote 0
          • N Offline
            neopar
            last edited by 21 Sept 2018, 20:23

            @ropod7 clickable --desktop also didn't work for me. On desktop I use qmlscene for testing.

            R 1 Reply Last reply 23 Sept 2018, 02:18 Reply Quote 1
            • R Offline
              ropod7
              last edited by 21 Sept 2018, 20:27

              It's did not work for me to. I will try your method. Thanks.

              1 Reply Last reply Reply Quote 0
              • R Offline
                ropod7
                last edited by 22 Sept 2018, 10:18

                So, it is not so comfortable to remove lib/ dir from the project on the phone at each installation. Easier to move python_lib/ dir from the source of project on desktop to somewhere and comment on the CMakeLists.txt file just one line:
                #add_subdirectory(python-lib)

                And it works.

                1 Reply Last reply Reply Quote 0
                • R Offline
                  ropod7 @neopar
                  last edited by 23 Sept 2018, 02:18

                  @neopar I found solution to publish xenial python apps created on clickable.

                  1. We need to remove all *3.4m python libs from local projects lib/ directory and also libpyothersideplugin.so from there;
                  2. Download from device system libs libpython3.5m.so.1.0 and libpython3.5m.so.1;
                  3. Edit python-lib/CMakeLists.txt to replace all 3.4 to 3.5;

                  After all we may upload apps to the open-store.io

                  Ubuntu Touch is awesome in case of app development. I've created one simple app. Need test.

                  H 1 Reply Last reply 23 Sept 2018, 05:08 Reply Quote 1
                  • H Offline
                    hummlbach @ropod7
                    last edited by hummlbach 23 Sept 2018, 05:08

                    Hi @ropod7, can you tell why you're doing steps 2 and 3 now? What you've written in your fore last post was more what I had expected.

                    R 2 Replies Last reply 23 Sept 2018, 09:08 Reply Quote 0
                    • R Offline
                      ropod7 @hummlbach
                      last edited by ropod7 23 Sept 2018, 09:08

                      @hummlbach Otherwise xenial returns encodings import error in my device. Xenial has python3.5 on a board and while calling clickable review --xenial before clickable publish --xenial - desktop returns that no python libs on an app board.
                      In the last case after clickable --xenial we do not need to remove anything at the device side. Everything works from scratch.

                      1 Reply Last reply Reply Quote 0
                      • R Offline
                        ropod7 @hummlbach
                        last edited by 23 Sept 2018, 09:14

                        @hummlbach It is just one time process moving libs into the python-lib/
                        After that project is compatible for xenial. I don't know how abot previous 15.04, but in xenial case it works.

                        1 Reply Last reply Reply Quote 0
                        10 out of 10
                        • First post
                          10/10
                          Last post