On Mon, Nov 25, 2013 at 12:55 PM, Himanshu Garg <[email protected]> wrote:
> I want that a script should only be executed when it is called from another
> script and should not be directly executable through linux command line.
>
> Like, I have two scripts "scrip1.py" and "script2.py" and there is a line in
> "script1.py" to call "script2.py" as subprocess.call(["python",
> "script2.py"]).
>
> Then this is should call script2 but I should not be able to directly call
> script2 as $python script2.py
Easy! Just have your subprocess.call pass a special argument, which
you then look for in script2:
subprocess.call(["python", "script2.py","confirm"])
# script2.py
import sys
if "confirm" not in sys.argv:
print("This script should not be run directly.")
sys.exit(1)
# rest of script2.py follows
ChrisA
--
https://mail.python.org/mailman/listinfo/python-list