Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python脚本没有';当从shell调用它时,它不会执行_Python_Linux_Tcsh - Fatal编程技术网

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,太奇怪了:)