Making automatic module installer in Python

Last Updated : 13 Jun, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Prerequisites: 

Many times the task of installing a module not already available in built-in Python can seem frustrating. This article focuses on removing the task of opening command-line interface and type the pip install module name to download some python modules. In this article, we will try to automate this process.

Approach:

  • Importing subprocess module to simulate command line using python
  • Importing urllib.request for implementing internet checking facility.
  • Input module name using input() function and initialize module_name variable.
  • Send module name to the main function.
  • In the main function, we first update our pip version directly through python for the smooth functioning of our app.
  • In the next line p= subprocess.run('pip3 install '+module_name) we write pip3 install module_name virtually into the command line.
  • Based on the combination of return code(p) of the above statement and return value of connect() function we can assume things mentioned below.
Return Code(P)Connect FunctionResult
1FalseInternet Off
1TrueInternet is On but some other problem occurred
0TrueModule Installed Successfully
  • Based on the above table we can give the desired output.

Function used:

The connect() function is used for the following purposes:

  1. To check whether internet is on or off.
  2. Reach a specific URL using urllib.request.urlopen(host) command.
    • If reached successfully, return True
    • Else if not reached i.e internet is off, return false.

Given below is the implementation to achieve our functionality using the above approach.

Example:

Python3
# importing subprocess module
import subprocess

# importing urllib.requests for internet checking functions
import urllib.request

# initializing host to gfg.
def connect(host='https://www.geeksforgeeks.org/'):

    # trying to open gfg
    try:
        urllib.request.urlopen(host)
        return True

    # trying to catch exception when internet is not ON.
    except:
        return False


def main(module_name):

    # updating pip to latest version
    subprocess.run('python -m pip install --upgrade pip')

    # commanding terminal to pip install
    p = subprocess.run('pip3 install '+module_name)

    # internet off
    if(p.returncode == 1 and connect() == False):
        print("error!! occurred check\nInternet conection")

    # Every thing worked fine
    elif(p.returncode == 0):
        print("It worked", module_name, " is installed")

    # Name of module wrong
    elif(p.returncode == 1 and connect() == True):
        print("error!! occurred check\nName of module")


module_name = input("Enter the module name: ")
main(module_name)

Output:


Next Article
Article Tags :
Practice Tags :

Similar Reads