Open In App

Making automatic module installer in Python

Improve
Improve
Like Article
Like
Save
Share
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 Function Result
1 False Internet Off
1 True Internet is On but some other problem occurred
0 True Module 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:



Last Updated : 13 Jun, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads