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 details)

Uploaded Python 2 Python 3

File details

Details for the file uninstallable-0.9.4-py2.py3-none-manylinux1_x86_64.whl.

File metadata

  • Download URL: uninstallable-0.9.4-py2.py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for uninstallable-0.9.4-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 002ff29a35e65bf0102213145bb372aa930cbd7de4d594e12ce9e95f061948d5
MD5 54e40e8b1ac58bff71a6b8042f5d20a4
BLAKE2b-256 6c1b95ff1827e7fffb34ee1b14edd6783c9d367598338888169f01b7fdc20b0e

See more details on using hashes here.

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