执行python程序

我已经在网上寻找答案了很长一段时间,但这让我很头疼:

我正在使用Ubuntu 12.04,我想从终端执行Python脚本而不使用完整路径.
所以我将/ home / kyril / python / scripts /添加到PATH变量中,将以下内容放入./bashrc:

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:无法打开文件’script.py’:[Errno 2]没有这样的文件或目录

如果我输入脚本的完整路径,它的工作原理.有谁知道我做错了什么?我是否必须将目录添加到PYTHONPATH? (据我所知,这只对导入模块有帮助).

多谢你们!

解决方法:

当直接调用python3时,python运行你告诉它的脚本文件,而不使用$PATH来查找它. PYTHONPATH无关紧要 – 用于搜索Python模块.

我猜你在运行script.py时遇到错误的解释器问题.我不知道你的脚本的第一行是什么,但它应该是这样的:

#!/usr/bin/env python3

或者如果您需要更精细的控制:

#!/usr/bin/env python3.2

对于Python 2脚本:

#!/usr/bin/env python2

要么:

#!/usr/bin/env python2.7

在尝试使用它们之前,应检查系统上是否存在这些可执行文件.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...