It's not uncommon to provide a file called
requirements.txt that list all third-party packages the script needs to work properly.
This way, users only have to use the following command before running the desired script:
pip install -r requirements.txt
The technique relies on pip, the package manager for Python, and the
requirements.txt file simply contains a list of all pip packages you have to install (one per line).
It's pretty convenient and quite robust, but it's also prone to bad scenarios.
If the script you want to use relies on too much dependencies, it's not necessarily evil, but it's usually a bad sign.
This list should be kept short, in my opinion.
You should use
venv to create isolated virtual environments "with their own independent set of Python packages installed in their site directories."
If you'd like to share your Python scripts or plan to maintain a library, you can include it in your documentation to let beginners know it's possible to install your stuff in a virtual env and not globally.
It does not require any installation, as
venv is included in Python.
You will also avoid various compatibility issues, and a virtual env is easy to
As a good practice, never install Python packages globally unless you perfectly know what you're doing.
Instead, you can leverage virtual environments to isolate your projects and don't mess with system-wide packages.
It won't solve all situations but you may avoid some headaches.