0

这是针对一个小型项目提案。
我想创建许多用户定义的 unix 命令,并使用 Python 编写的代码对文件执行各种操作。
例如 extractinfo 'filename' [此命令将提取存储在某个文件中的元数据或一般信息]

这就是我的工作方式:
1. 假设我有一个 python 代码 extract.py。
2. 现在,为了创建“我自己的 unix 命令”(比如 - 'extractinfo'),我编写了一个名为 -extractinfo 的 shell 脚本:

#/bin/bash
python /home/extract.py  

3.现在,我想把上面的shell脚本放在/usr/bin。所以我创建了另一个 shell 脚本 - install.sh:

#!/bin/bash
chmod u+x extractinfo  
sudo cp extractinfo /usr/bin/  

4. 现在我可以运行 install.sh 并使用命令“extractinfo”。

问题是,如果我使用另一个系统并运行 install.sh,命令 'extractinfo' 变得可用,但是在终端上执行命令时,出现错误(python:无法打开文件 'extract.py':[Errno 2 ] 没有这样的文件或目录)被抛出。

当需要使用另一个系统时,如何处理原始 python 脚本的路径?

我知道尝试链接 shell 和 python 是非常粗糙的做事方式。任何有关此问题的帮助/建议都将不胜感激。

4

1 回答 1

0

有什么理由不直接将shebang用于python吗?如果您担心 python 的路径不一致,可能使用 /usr/bin/env 间接?

如果您不熟悉,请参阅http://en.wikipedia.org/wiki/Shebang_%28Unix%29 。我不清楚您是否需要一个 bash 脚本。只需将 python 脚本放在 /usr/bin 中(或者可能更好,/usr/local/bin)

换句话说,如果不是很清楚,请在脚本的第一行设置:#!/usr/bin/python 或 #!/usr/bin/env python

于 2013-02-28T21:20:31.220 回答