How to Install Python Packages using a Script

How to Install Python Packages Using a Script

In some cases, you may need to automate the updating of multiple Python deployments with a specific package or set of packages. This resource provides examples of how to create a Python script that runs pip (the recommended package manager) or conda as a subprocess in order to install Python packages.

Warning:

Use of a Python script to run pip to install a package is not supported by the Python Packaging Authority (PyPA) for the following reason:

  • Pip is not thread-safe, and is intended to be run as a single process. When run as a thread from within a Python script, pip may affect non-pip code with unexpected results.

However, PyPA fully supports using a Python script to run pip as a subprocess. 

Python Installation Checklist

Before packages can be installed, ensure that a Python installation containing the necessary files needed for installing  packages is in place by following the Installation Requirements.

How to Run Pip as a SubProcess

When it comes to automating the installation of Python packages, you can create a Python script that runs pip as a subprocess with just a few lines of code:

import sys
import subprocess
# implement pip as a subprocess:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '<packagename>'])

The package, as well as any requirements will be installed. 

  • Note: pip installs wheels by default. Wheels include package requirements. If pip does not find a wheel to install, it will build one.

Interactive Usage

If you’re running the script interactively, it’s good practice to confirm the installation. The following script will run pip as a subprocess to install one or more packages, and then print an updated list of installed packages:

import sys
import subprocess
# implement pip as a subprocess:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '<packagename>'])
# process output with an API in the subprocess module:
reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze'])
installed_packages = [r.decode().split('==')[0] for r in reqs.split()]
print(installed_packages)

How to run Conda as a SubProcess

If you’re working with Anaconda’s version of Python, you can also run Anaconda’s package manager (conda) as a subprocess in order to install Python packages. The following Python script provides an example:

import sys
import subprocess
import conda.cli.python_api as Conda
# implement conda as a subprocess:
subprocess.check_call([sys.executable, '-m', 'conda', 'install', '<packagename>'])

The specified package(s), along with any requirements will be installed and displayed as output.

Next Steps

Try a faster way of installing Python packages for Windows. Get ActiveState Python or build your own Python runtime with the packages you need. Get started free on the ActiveState Platform.

  • Create a custom Python runtime for your next project. Pick just the packages you need, and we’ll automatically resolve all dependencies, build it (including C code) and package it for your platform.

How to Uninstall Python Packages with the ActiveState Platform

 
Related Links

Recent Posts

Tech Debt Best Practices: Minimizing Opportunity Cost & Security Risk

Tech debt is an unavoidable consequence of modern application development, leading to security and performance concerns as older open-source codebases become more vulnerable and outdated. Unfortunately, the opportunity cost of an upgrade often means organizations are left to manage growing risk the best they can. But it doesn’t have to be this way.

Read More
Scroll to Top