Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

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.

Files for uninstallable, version 0.9.4
Filename, size File type Python version Upload date Hashes
Filename, size uninstallable-0.9.4-py2.py3-none-manylinux1_x86_64.whl (3.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page