python脚本没有';当从shell调用它时,它不会执行
我在文件python脚本没有';当从shell调用它时,它不会执行,python,linux,tcsh,Python,Linux,Tcsh,我在文件foo中有一个python 3程序,该文件具有执行权限,脚本的第一行是 #!/usr/bin/python3 当我直接从python运行文件时,即: /usr/bin/python3 foo 3 boo 一切都运行得很好,但是当我试图通过调用文件名来运行程序时,我得到: foo 3 boo foo: Command not found. 即使指定脚本的相对路径或完整路径,我也会得到相同的响应 ./foo 3 boo ./foo: Command not found. /full/
foo
中有一个python 3程序,该文件具有执行权限,脚本的第一行是
#!/usr/bin/python3
当我直接从python运行文件时,即:
/usr/bin/python3 foo 3 boo
一切都运行得很好,但是当我试图通过调用文件名来运行程序时,我得到:
foo 3 boo
foo: Command not found.
即使指定脚本的相对路径或完整路径,我也会得到相同的响应
./foo 3 boo
./foo: Command not found.
/full/path/to/the/file/foo 3 boo
/full/path/to/the/file/foo: Command not found.
请求的更多信息:
head -2 foo
#!/usr/bin/python3
which python3
/usr/bin/python3
在tcsh工作时,问题出在哪里
我正在通过ssh在远程大学计算机上工作,可能是系统管理员以某种方式阻止了这种情况吗?您需要指定脚本的绝对路径。试一试
./foo 3 boo
而在与脚本相同的目录中。否则,shell将只在
路径中查找名为foo
的内容,该内容不存在。您需要指定脚本的绝对路径。试一试
./foo 3 boo
而在与脚本相同的目录中。否则,shell将只在您的路径中查找名为foo
的内容,该内容不存在。您必须提供文件的路径
/foo
如果您只调用“foo”,shell将在环境变量$PATH中查找包含“foo”二进制文件的文件夹,而他将找不到它…您必须给出文件的路径
/foo
如果您只调用“foo”,shell将在环境变量$PATH中查找包含“foo”二进制文件的文件夹,他将找不到它…我正在使用python3,这只是一个示例说明
只是一个测试脚本
$ cat test.py
#!/python/v3.6.1/bin/python3
import os
print(os.system("ls"))
$ which python3
/python/v3.6.1/bin/python3
使其可执行的权限。。我怀疑脚本foo
在您的情况下是否可执行
$ chmod +x test.py
试运行
$ ./test.py
a.py Backup File_Write_Method NWK-old Python_aritsTest Python_Ftp Python_Mail Python_Primer test.py
argpass BASH Network_DeOps Python-3.6.3 Python_Dump Python_FTP Python_Panda readme_python tmp
awk.sh dnspython nslookup Python-3.6.3.tar.xz Python_excep Python_ldap Python_Parsers Regular_Expr tt.csv
0
当我复制tcsh外壳时,可能是外壳问题&它无法运行。
但是当我像下面那样运行它时
tcsh -c ./test.py
我正在使用python3,只是一个示例说明
只是一个测试脚本
$ cat test.py
#!/python/v3.6.1/bin/python3
import os
print(os.system("ls"))
$ which python3
/python/v3.6.1/bin/python3
使其可执行的权限。。我怀疑脚本foo
在您的情况下是否可执行
$ chmod +x test.py
试运行
$ ./test.py
a.py Backup File_Write_Method NWK-old Python_aritsTest Python_Ftp Python_Mail Python_Primer test.py
argpass BASH Network_DeOps Python-3.6.3 Python_Dump Python_FTP Python_Panda readme_python tmp
awk.sh dnspython nslookup Python-3.6.3.tar.xz Python_excep Python_ldap Python_Parsers Regular_Expr tt.csv
0
当我复制tcsh外壳时,可能是外壳问题&它无法运行。
但是当我像下面那样运行它时
tcsh -c ./test.py
假设脚本是可执行的,并且在/usr/bin/python3中有python3。我认为您正在尝试从装载了noexec参数的分区运行脚本,以检查您是否应该运行该脚本:
mount | grep <partition> | grep noexec
mount | grep | grep noexec
如果我是对的,您可以使用exec选项挂载分区或将脚本移到其他位置。假设您的脚本是可执行的,并且您在/usr/bin/python3中有python3。我认为您正在尝试从装载了noexec参数的分区运行脚本,以检查您是否应该运行该脚本:
mount | grep <partition> | grep noexec
mount | grep | grep noexec
如果我是对的,您可以使用exec选项挂载分区,或者将脚本移到其他地方。您的脚本是否可执行?@Anton,是的,我可以did@Anton仔细阅读问题。他明确地说是的。@RaoslawSzamszur是的,我的错。下面的答案是correct@SIMEL,你能展示一下从终端输出的head-2foo
&哪条python
吗?你的脚本可执行了吗?@Anton,是的did@Anton仔细阅读问题。他明确地说是的。@RaoslawSzamszur是的,我的错。下面的答案是correct@SIMEL,您是否可以显示head-2foo
&哪个python
从终端输出?我得到相同的响应,即使在声明脚本的完整路径时,我也得到相同的响应。我得到相同的响应,即使在声明脚本的完整路径时,我也得到相同的响应。@wpercy,太奇怪了:)@wpercy,太奇怪了:)