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:
- To check whether internet is on or off.
- 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. # 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: