Executing Python Program
Solution 1:
When invoking python3
directly, python runs the script file you told it to, without using $PATH
to find it. PYTHONPATH
is irrelevant--that's used for searching for Python modules.
I'm guessing you're having issues with the wrong interpreter getting invoked when you run script.py
by itself. I don't know what the first line of your script is, but it should be this:
#!/usr/bin/env python3
Or if you need even finer control:
#!/usr/bin/env python3.2
And for Python 2 scripts:
#!/usr/bin/env python2
Or:
#!/usr/bin/env python2.7
You should check that these executables exist on your system before trying to use them.
Solution 2:
I would guess that path variables are ignored when python searches for the input-file. Python starts searching for 'script.py' in the current directory, not knowing that there is a path variable declared for that file, and therefore cannot find it.
Unfortunately I'm not sure how to solve it but maybe someone more experienced with variables can enlighten us?
Solution 3:
python3 $(type -P script.py)
Tells Bash to look in the PATH
for the executable file and supply its location and name.
For example:
$ type -P script.py
/usr/local/bin/script.py
Solution 4:
To avoid duplicate entries in the path, you can do:
fordirin Python Bash; do
dir_to_add="$HOME/$dir/scripts"case":$PATH:"in
*:"$dir_to_add":*) ;; # path already contains dir, do nothing
*) PATH+=":$dir_to_add" ;;
esacdone
Post a Comment for "Executing Python Program"