[PyQt] pyqtdeploy-build fails for iOS app
Phil Thompson
phil at riverbankcomputing.com
Sat Jun 16 16:05:06 BST 2018
On 14 Jun 2018, at 4:44 pm, David Morris <othalan at othalan.net> wrote:
>
> I am attempting to update a project to pyqtdeploy 2.0. I have the sysroot setup, but when attempting to build my application I get an import error for PyQt5.QtCore. PyQt5 is setup and runs my app perfectly, and pyqtdeploy itself runs perfectly. Below is the actual error. Any ideas on what I did wrong?
The reference to...
pyqtdeploy-0.0.dev0-py3.6.egg
...below doesn't look right.
Phil
>
> Note that I am using a pyenv virtual environment (pyenv virtualenv) if that is relevant .....
>
> Compile OS: MacOS High Sierra (10.13.4)
>
> pyqtdeploy-build --build-dir /Users/morrisde/contract/PiranhaColorQt10/ios/sysroot_test/pump --target ios-64 --sysroot /Users/morrisde/contract/PiranhaColorQt10/ios/sysroot_test pump.pdy
> Traceback (most recent call last):
> File "/usr/local/var/pyenv/versions/piranha-qt5/bin/pyqtdeploy-build", line 11, in <module>
> load_entry_point('pyqtdeploy==0.0.dev0', 'console_scripts', 'pyqtdeploy-build')()
> File "/usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages/pkg_resources/__init__.py", line 480, in load_entry_point
> return get_distribution(dist).load_entry_point(group, name)
> File "/usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2693, in load_entry_point
> return ep.load()
> File "/usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2324, in load
> return self.resolve()
> File "/usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2330, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
> File "/usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages/pyqtdeploy-0.0.dev0-py3.6.egg/pyqtdeploy/__init__.py", line 28, in <module>
> from .builder import Builder
> File "/usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages/pyqtdeploy-0.0.dev0-py3.6.egg/pyqtdeploy/builder/__init__.py", line 28, in <module>
> from .builder import Builder
> File "/usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages/pyqtdeploy-0.0.dev0-py3.6.egg/pyqtdeploy/builder/builder.py", line 33, in <module>
> from PyQt5.QtCore import (QByteArray, QCoreApplication, QDir, QFile,
> ModuleNotFoundError: No module named 'PyQt5.QtCore'
> make: *** [pump_xcode] Error 1
>
>
> Examining the python environment used by the file "builder.py" referenced in the traceback, I get the following information:
>
> sys.executable: /usr/local/var/pyenv/versions/3.6.5/bin/python
> sys.path: ['/usr/local/var/pyenv/versions/3.6.5/bin', '/Users/morrisde/contract/PiranhaColorQt10/ios/sysroot_test/lib/python3.6/site-packages', '/Users/morrisde/contract/PiranhaColorQt10/ios/sysroot_test/lib/python3.6/site-packages/numpy-1.14.3-py3.6-macosx-10.13-x86_64.egg', '/usr/local/var/pyenv/versions/3.6.5/lib/python36.zip', '/usr/local/var/pyenv/versions/3.6.5/lib/python3.6', '/usr/local/var/pyenv/versions/3.6.5/lib/python3.6/lib-dynload', '/usr/local/var/pyenv/versions/3.6.5/lib/python3.6/site-packages', '/usr/local/var/pyenv/versions/3.6.5/lib/python3.6/site-packages/pyqtdeploy-0.0.dev0-py3.6.egg']
>
> This looks wrong in two ways, though perhaps I am simply either doing something wrong or misunderstanding what it should look like:
>
> • I am using a pyenv virtual environment (pyenv virtualenv). As such, the correct executable path should be whatever is setup by my pyenv environment:
>
> /usr/local/var/pyenv/shims/python
>
> It appears that pyqtdeploy-build is taking the real executable and ignoring the virtual environment, which breaks pyenv functionality. (which is possibly acceptable in this situation except for the fact that I can't actually compile the iOS application).
>
> • The python module path (sys.path) is missing the pyenv virtual environment site packages which should be found here:
>
> /usr/local/var/pyenv/versions/piranha-qt5/lib/python3.6/site-packages
>
> It appears that pyqtdeploy-build is looking for PyQt5 in the sysroot directory (/Users/morrisde/contract/PiranhaColorQt10/ios/sysroot_test/lib/python3.6/site-packages), however no PyQt5 installation exists in that location.
>
> Can anyone help with how to setup an iOS build environment?
> Is it possible to use pyenv (with or without a virtual environment)?
> Or is there some other setup which must be used?
> Or am I missing a build step?
>
> I attached my sysroot.json config file in the previous email. Here are the build commands I am using (with full python virtualenv setup):
>
> brew install pyenv pyenv-virtualenv
> pyenv install 3.6.5
> pyenv virtualenv -p python3.6 3.6.5 piranha-qt5
> pyenv local piranha-qt5
> pip install sip==4.19.8 pyqt5==5.10.1
>
> pyqtdeploy-sysroot --sysroot ${HOME}/contract/PiranhaColorQt10/ios/sysroot_test \
> --source-dir ${HOME}/contract/pkgsrc sysroot.json \
> --target ios-64
>
> pyqtdeploy-build --build-dir ${HOME}/contract/PiranhaColorQt10/ios/sysroot_test/pump \
> --target ios-64 \
> --sysroot ${HOME}/contract/PiranhaColorQt10/ios/sysroot_test pump.pdy
>
> Any help on what I am doing wrong?
>
> Thank you,
> David
>
>
> <sysroot.json>_______________________________________________
> PyQt mailing list PyQt at riverbankcomputing.com
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
More information about the PyQt
mailing list