[pyqtdeploy] ModuleNotFoundError after compilation
Kristófer Reykjalín Þorláksson
kristofer at thorlaksson.com
Sat Jun 27 13:48:34 BST 2020
I have a project with the following folder structure:
project/
__init__.py
main.py
ui/
__init__.py
mainwindow.py
otherfile.py
The main.py file has the following import statement:
from ui.mainwindow import MainWindow
When I run the project using `python main.py` it runs fine, but after
compiling via `pyqtdeploy` I get the following error when I run the
executable:
ModuleNotFoundError: No module named 'ui'
After reading through one of the other threads on the mailing list [0] I
realized that I was able to successfully build and run the project by
changing the `mainwindow` import statement to:
from project.ui.mainwindow import MainWindow
However, after making that change running `python main.py` no longer
works, because the path `project.ui.mainwindow` doesn't exist.
[0]:
http://python.6.x6.nabble.com/pyqtdeploy-build-can-t-find-modules-td5185029.html
I also tried a suggestion in the aforementioned thread and moved
`main.py` to be at the same level as `project` like so:
__init__.py
main.py
project/
__init__.py
ui/
__init__.py
mainwindow.py
otherfile.py
But that didn't work either; I could run the project using `python
main.py`, but got the same ModuleNotFoundError after buidling via
pyqtdeploy.
This isn't much more than an annoyance, but being forced to change the
import path before building the project is a _bit frustrating_.
Is it possible to have one import statement that works for both running
the project via `python main.py` and running the built executable that
does not including messing with path settings?
Best regards,
Kristófer R.
More information about the PyQt
mailing list