我已经在网上搜索了很长一段时间的答案,但这让我非常头疼:
我正在使用 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 吗?(据我了解,这仅有助于导入模块)。
多谢你们!