Skip to main content

A purposefully uninstallable package.

Project description

uninstallable: The Uninstallable Python Wheel!

If you got here from one of the following errors, the package you tried to install is not intended for the platform you tried to install it on. Good day!

$ pip install --user ...
...
Collecting uninstallable>0; platform_system == "..." (from ...)
  Downloading ...
Collecting pywin32>=1.0; platform_system == "Linux" (from uninstallable>0; platform_system == "..."->...)
  Could not find a version that satisfies the requirement pywin32>=1.0; platform_system == "Linux" (from uninstallable>0; platform_system == "Linux"->...) (from versions: )
No matching distribution found for pywin32>=1.0; platform_system == "Linux" (from uninstallable>0; platform_system == "Linux"->...)
$ pip install --user ...
...
Collecting uninstallable>0; platform_system != "..." (from ...)
  Could not find a version that satisfies the requirement uninstallable>0; platform_system != "..." (from ...) (from versions: )
No matching distribution found for uninstallable>0; platform_system != "..." (from ...)

Why?????????

The purpose of this package is to get around a limitation of the Python Wheel specification. It exists to prevent the successful installation of pure Python Wheels on platforms not compatible with one's package.

How?

PyPI doesn't allow uploading Python Wheels with unrecognized platform types, so to force a conflict:

  • We build only for the manylinux1_x86_64 platform
  • We have setup.py install_requires= a Linux-incompatible package when the platform is Linux

This results in either a failure to locate an applicable uninstallable package file, or a realization that the package has a dependency that cannot be installed.

Building

python setup.py bdist_wheel -p manylinux1_x86_64

Usage

from setuptools import setup

setup(
  name='...',
  version='1.0.0',
  description='...',
  long_description=open('README.md').read(),
  long_description_content_type='text/markdown',
  author='...',
  author_email='...',
  url='...',
  license='...',

  python_requires='...',
  install_requires=[
    ...
    'uninstallable > 0;platform_system!="Linux"',
  ],
  ...

Features

  • None!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

uninstallable-0.9.4-py2.py3-none-manylinux1_x86_64.whl (3.2 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page