rsgalloway / pyseq

Compressed sequence string module for Python
https://pyseq.rsgalloway.com/
Other
123 stars 36 forks source link

Python wheel missing in PyPi #49

Closed darkvertex closed 5 years ago

darkvertex commented 6 years ago

Nice work on the package!

Just dropping by to say it would be nice to have the Python wheel exist in PyPi. It makes pip much faster to deploy the package since it doesn't have to create the wheel itself. (That is what it does when only the .tar.gz exists.)

To generate it you normally just run: python setup.py bdist_wheel then look under ./dist for a .whl file. If you get bdist_wheel command not found or something like that, pip install wheel first and retry.

If your code runs in both Python 2 and 3 you can also mark this as a "universal" package by creating a setup.cfg file at your root before producing the wheel:

[bdist_wheel]
# This produces a "universal" (Py2+3) wheel.
universal = 1

[metadata]
# This includes the license file inside the wheel.
license_file = LICENSE

(The license_file bit is optional, but a nice bonus to throw in.)

Marking it universal will make it produce a .whl file for both Python 2 and 3. Otherwise the default behaviour is to build the wheel for the platform that ran the setup.py, meaning you'd need to python2.7 setup.py bdist_wheel then python3 setup.py bdist_wheel. After marking it "universal", this is not necessary as it makes one file that's valid for both.

You can read more info about wheels here: https://pythonwheels.com/

rsgalloway commented 5 years ago

Hey Alan, thanks for the pointers! Will certainly do that next time I release to PyPI (soon hopefully).

rsgalloway commented 5 years ago

Generated and uploaded the wheel file. In this case, I had the wheel module installed, but needed to add "import setuptools" to setup.py before it would generate the wheel file.

https://pypi.org/project/pyseq/#files

I did not mark this as universal because it looks like there may be some issues in the lss executable that prevent it from working in py3. Will address that for the 1.0 release.