Closed torank closed 6 years ago
If you put it in packages, it has to be the importable name, which can't include dashes. It sounds like that might be et_xmlfile
in your case.
Another option is to put it in the pynsist_pkgs
directory. Or make a wheel yourself and point extra_wheel_sources
to the directory you put it in.
Ok, when using the pynsist_pkgs directory, do I have to include it somewhere in the installer.cfg-file? Or will it automatically include the directory in the installation?
pynsist_pkgs is used automatically - it just has to be alongside the installer.cfg file.
Ok, thank you for your help, I'll keep at it with these new suggestions. :)
I'm wondering what sort of error message would be useful here?
What about logging these two messages?
"Please make a wheel yourself for XXX and put it in YYY."
"Please ask the package maintainer for XXX to upload a wheel as well."
If you think this is a good idea, I will make a PR?
(Someone was trying to make an installer with the pyscroll library which currently only has a .tar.gz file, and no wheel.)
The error message for a misspelled/nonexistent package should be different from a nonexistent version, or from a version with no compatible wheels. Also I assumed that pynsist ~/.cache/pynsist/pypi/
caches wheels in the same place as pip ~/.cache/pip/wheels/
, but that is kind of my own fault.
Better error messages welcome, and I agree that it should be different for a nonexistent package and one that simply hasn't uploaded a compatible wheel. Maybe also one for when the package exists but the version specified doesn't?
Compatibility is important for compiled packages: they typically need to be compiled on the same platform, CPU architecture and python version that they should be used. So it's not just "does X have wheels", it's "does X have a wheel for 64-bit python 3.7 on Windows?"
Longer term, it would be best to try to build a wheel if one isn't available. But that gets complex, and there's no guarantee it will succeed.
On Tue, 14 Aug 2018, 4:41 p.m. robertpfeiffer, notifications@github.com wrote:
The error message for a misspelled/nonexistent package should be different from a nonexistent version, or from a version with no compatible wheels. Also I assumed that pynsist (/.cache/pynsist/pypi/) caches wheels in the same place as pip (/.cache/pip/wheels/), but that is kind of my own fault.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/takluyver/pynsist/issues/151#issuecomment-412896281, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUA9QYJDQq2XY-Uegi1Gud7aliU5-h2ks5uQuGxgaJpZM4Tt6ZC .
Hi, I'm trying to create an installer for a rather large python program and I'm having trouble importing all the required packages. For example, when I want to import et-xmlfile==1.0.1 I get this error message:
raise NoWheelError('No compatible wheels found for {0.name} {0.version}'.format(self)) nsist.pypi.NoWheelError: No compatible wheels found for et-xmlfile 1.0.1
I tried including it underpackages
instead but don't know exactly how to do this. Is it enough to writepackages = et-xmlfile
? If I do this, I get this error message:raise ImportError('Could not find %r' % modname) ImportError: Could not find 'et-xmlfile'
I've tried moving the folder containing et-xmlfile up to the same level as the installer.cfg-file but I get the same error message. Should "et-xmlfile" just be a single file? When downloading it with pip I get two folders; "et_xmlfile" and "et_xmlfile-1.0.1-py3.6.egg-info". I assume I should at least include everything in the "et_xmlfile"-folder in my installer but I seem unable to do this.
Underneath is the complete installer file, those modules which are commented out under "pypi_wheels", didn't have a wheel and so I've included in "packages".