【发布时间】:2012-05-14 17:16:23
【问题描述】:
我已经在网上搜索了很长一段时间的答案,但这让我非常头疼:
我使用的是 Ubuntu 12.04,我想在不使用完整路径的情况下从终端执行 Python 脚本。 所以我通过将以下内容放入 ./bashrc 将 /home/kyril/python/scripts/ 添加到 PATH 变量中:
kyrilpathvariable="/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/kyril/Python/scripts/:/home/kyril/Bash/scripts"
if [ "$kyrilpathvariable" = "$PATH" ]; then
echo PATH already exported
else
PATH=$PATH:/home/kyril/Python/scripts/
PATH=$PATH:/home/kyril/Bash/scripts/
export PATH
fi
(我知道 if 子句不是必需的,但如果我键入 exec bash,我不喜欢在我的 PATH 中包含两次所有内容。)
现在的问题是:这对我的 Bash 脚本非常有效,因此在通过 chmod 使它们可执行后,我只需键入 $ script.sh 并执行它。但是,如果我键入 $ python3 script.py,则会引发以下错误:python3: can't open file 'script.py': [Errno 2] No such file or directory
如果我输入脚本的完整路径,它就可以工作。有人知道我做错了什么吗?我必须将目录添加到 PYTHONPATH 吗? (据我了解,这只有助于导入模块)。
谢谢大家!
【问题讨论】:
-
为什么要运行
python3 script.py而不是script.py?
标签: python bash path executable