问题
I would like to bundle an application into an executable using PyInstaller. I am having issues because of the geopandas library. Currently my script throwaway.py contains only the following import:
import geopandas
However running pyinstaller throwaway.py does not work. It appears to have problems with PyQt5 which only matplotlib imports.
The log for pyinstalleris too long to include here however the following shows the last exception encountered:
Exception:
Cannot find existing PyQt5 plugin directories
Paths checked: c:/qt/qt_1489878162099/_b_env/Library/plugins
I am not sure how to approach this, but there are a couple of conceptual options:
- Find a way to exclude the geopandas import of matplotlib. I am not using matplotlib so I don't really need it to be packaged in the first place
- Figure out why this problem is occuring and prevent/fix it
Could anyone please help? Thanks a lot!
回答1:
This pyinstaller -y -d --clean throwaway.py works for me.
Also, check this question.
There is an issue with the recursing limit, stated here. Try to increase it like this:
import sys
sys.setrecursionlimit(5000)
回答2:
I solved this problem by downloading the development version of pyinstaller as follows:
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
I got the above from this link. The current conda-forge distribution of pyinstaller still does not include this change which is included in the development version. The code prior to that change is what was causing the error in the question to occur.
Hopefully the conda-forge distribution will soon come to incorporate this into the main distribution.
So basically if you are experiencing this problem you have two choices:
- Install development version of PyInstaller and use that
- Manually go inside the
~\anaconda3\Lib\site-packages\PyInstaller\utils\hooks\qt.pyand modify the file as indicated here
来源:https://stackoverflow.com/questions/53116243/problems-with-pyinstaller