Making automatic module installer in Python
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
import subprocess
import urllib.request
try :
urllib.request.urlopen(host)
return True
except :
return False
def main(module_name):
subprocess.run( 'python -m pip install --upgrade pip' )
p = subprocess.run( 'pip3 install ' + module_name)
if (p.returncode = = 1 and connect() = = False ):
print ( "error!! occurred check\nInternet conection" )
elif (p.returncode = = 0 ):
print ( "It worked" , module_name, " is installed" )
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
Share your thoughts in the comments
Please Login to comment...