takluyver / pynsist

Build Windows installers for Python applications
https://pynsist.readthedocs.io/
Other
896 stars 119 forks source link

nsist.wheels.NoWheelError: No compatible wheels found for peewee 3.14.4 #234

Closed danielcuellarp closed 2 years ago

danielcuellarp commented 2 years ago

Hello, could you help me with this case by running: pynsist installer.cfg

Output:

Traceback (most recent call last): File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\Scripts\pynsist.exe__main.py", line 7, in File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\site-packages\nsist__init__.py", line 533, in main ec = InstallerBuilder(**args).run(makensis=(not options.no_makensis)) File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\site-packages\nsist__init__.py", line 487, in run self.prepare_packages() File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\site-packages\nsist\init__.py", line 359, in prepare_packages wg.get_all() File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\site-packages\nsist\wheels.py", line 292, in get_all self.get_requirements() File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\site-packages\nsist\wheels.py", line 298, in get_requirements whl_file = wl.fetch() File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\site-packages\nsist\wheels.py", line 179, in fetch return self.get_from_pypi() File "C:\Users\devpca\AppData\Local\Programs\Python\Python39\lib\site-packages\nsist\wheels.py", line 144, in get_from_pypi raise NoWheelError('No compatible wheels found for {0.name} {0.version}'.format(self)) nsist.wheels.NoWheelError: No compatible wheels found for peewee 3.14.4

installer.cfg:

[Application] name=AppName version=1.0 entry_point=app:main

[Python] version=3.9.7 bitness=64 format=bundled

[Include] pypi_wheels= altgraph==0.17.2 numpy==1.21.2 peewee==3.14.4 pyinstaller==4.5.1 pyinstaller-hooks-contrib==2021.3 PyQt5==5.15.4 PyQt5-Qt5==5.15.2 PyQt5-sip==12.9.0 python-dateutil==2.8.2

six==1.16.08

If I comment on the peewee line the process completes successfully.

takluyver commented 2 years ago

Peewee doesn't publish wheels on PyPI. That's kind of unusual today, but it looks like Peewee uses optional C extensions. Building wheels with C extensions is a lot of effort (because you need a separate wheel for each major platform & Python version), and building wheels without those extensions means few people will benefit from them.

For Pynsist, you can make a wheel yourself (e.g. with pip wheel peewee), and then use either the extra_wheel_sources or local_wheels options in the [Include] section. If you don't need the sqlite extensions, this should be straightforward. If you do need those, it will be more work.