Skip to content

In-built Python Version Manager (PVM) and Package Manager #124201

@edward-sam

Description

@edward-sam

Feature or enhancement

Proposal:

Description:

Please consider adding an in-built Python Version Manager (PVM) similar to existing tools like fnm (Fast Node Manager. The PVM should offer the following subcommands:

  • pvm list or pvm ls: Lists all locally installed Python versions.
  • pvm list-remote or pvm ls-remote: Lists all available Python versions for download, including alpha and beta versions.
  • pvm install <version>: Installs the specified Python version.
  • pvm use <version>: Sets a specific Python version for the current session.
  • pvm default <version>: Sets a default Python version globally.
  • pvm current: Displays the currently active Python version.
  • pvm uninstall <version>: Uninstalls the specified Python version.
  • pvm help: Displays help information for PVM commands.

Additionally, consider adding a Python package manager similar to Node's package.json system. Python could have a command like pip init or pip init -y to initialize a new project with package dependencies.

Additional Features:

  • Hot Reloading & Watch Mode:
    • Add support for py --hot main.py to provide hot-reloading of the Python script.
    • Add py --watch main.py to watch for file changes and automatically restart the script.

These enhancements would greatly improve Python's usability and developer experience.

Expected Benefits:

  • Simplified Python version management with comprehensive subcommands.
  • Streamlined package initialization and management.
  • Enhanced development workflow with hot-reloading and file-watching capabilities.

Has this already been discussed elsewhere?

No response given

Links to previous discussion of this feature:

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions