flake8-executable
A Flake8 plugin for checking executable permissions and shebangs.
Decision gist · record as of 2026-08-14
Yes, if you use Flake8 and want to enforce executable-permission and shebang correctness. The plugin is lightweight, has no security vulnerabilities, and integrates seamlessly into your existing linting workflow. The copyleft license is not a barrier for most development use. Install it if your team or project cares about consistent script permissions; skip it if you don't distribute or run Python files as executables.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction; depends only on flake8.
- Actively maintained with recent commits; last release was over a year ago but the repository remains active and the package supports current Python versions.
License · maintenance · safety
LGPL v3+ (copyleft) — Licensed under LGPL v3+, a copyleft license. You may use and modify the package freely, but any derivative work must also be distributed under LGPL v3+ or a compatible license.
last release 2023-01-23 (1299 days) · last repo commit 2026-08-06 · 20 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 238,042 downloads/mo, #8,949 on PyPI
Alternatives
Verify before relying
pip install flake8-executable
flake8 your_script.py
# Reports EXE001–EXE005 errors inline with other flake8 checks- Whether the plugin integrates transparently with existing flake8 configurations or requires explicit setup.
- Whether the five error codes (EXE001–EXE005) cover all common executable/shebang mismatches or if edge cases exist.
What it is and what it does
flake8-executable is a Flake8 plugin that enforces correct executable permissions and shebang lines in Python files. It runs automatically whenever you invoke flake8 and reports five specific error codes: EXE001 (shebang present but file not executable), EXE002 (file executable but no shebang), EXE003 (shebang missing "python"), EXE004 (whitespace before shebang), and EXE005 (blank or comment lines before shebang).
The plugin integrates directly into your existing Flake8 workflow with no additional configuration needed beyond installation. It depends only on flake8 itself and supports Python 3.7 through 3.11. The package is actively maintained, has no known security vulnerabilities, and is used by thousands of developers monthly.
Use it for
- Enforce consistent shebang and executable-bit conventions in a team's Python codebase during CI/CD linting.
- Catch accidentally executable Python files or missing shebangs in command-line scripts before they cause runtime issues.
- Validate that all Python entry points have correct shebangs and permissions in a package distribution.
- Detect malformed shebangs (e.g., missing 'python' keyword) that could prevent scripts from running correctly.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you use Flake8 and want to enforce executable-permission and shebang correctness.
The plugin is lightweight, has no security vulnerabilities, and integrates seamlessly into your existing linting workflow. The copyleft license is not a barrier for most development use. Install it if your team or project cares about consistent script permissions; skip it if you don't distribute or run Python files as executables.
Install
flake8-executable on PyPI
Before you install
Low install friction; depends only on flake8. Actively maintained with recent commits; last release was over a year ago but the repository remains active and the package supports current Python versions.
License in practice
Licensed under LGPL v3+, a copyleft license. You may use and modify the package freely, but any derivative work must also be distributed under LGPL v3+ or a compatible license.
Quickstart
pip install flake8-executable
flake8 your_script.py
# Reports EXE001–EXE005 errors inline with other flake8 checks
Verify before relying
- Whether the plugin integrates transparently with existing flake8 configurations or requires explicit setup.
- Whether the five error codes (EXE001–EXE005) cover all common executable/shebang mismatches or if edge cases exist.
Package facts
| License | LGPL v3+ copyleft |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packageflake8 |
| Maintenance | Actively maintained 1,299 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 238,042 / month, #8,949 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Environment :: ConsoleFramework :: Flake8Intended Audience :: DevelopersLicense :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Quality Assurance |
Evidence: flake8_executable-2.1.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “flake8 executable permissions”
- flake8-executableA Flake8 plugin that detects and reports mismatches between Python…
- shivshiv builds self-contained Python zipapps (PEP 441) that bundle an…
- flake8-helperProvides utility functions and base classes to simplify building…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also flake8 · wemake-python-styleguide · flake8-broken-line · flake8-logging · flake8-use-pathlib · flake8-noqa · executable-application · flake8-tuple · flake8-blind-except · dlint