我用 Python 制作了一个脚本,使其可执行,并将其放入/usr/local/bin/
.但是我还有许多与我的命令相关的其他文件,我应该将它们放在哪里?我尝试将它们放入/usr/local/
但不起作用。
from: can't read /var/mail/lib.arguments
from: can't read /var/mail/lib.shot
from: can't read /var/mail/gui.main
/usr/local/bin/shot: 6: Syntax error: "(" unexpected
这个错误似乎很奇怪,我没有将任何文件放入/var/mail/
.
我还尝试将整个项目移动到/usr/local/
并创建文件的符号链接main
,然后将符号链接移动到/usr/local/bin/
目录。
ln -s main /usr/local/bin
顺便说一句,我正在使用 Ubuntu。
更新:
我把从shebang
改为。我移动到我的项目目录,复制了我的文件,将其重命名为.最后我再次在 处创建了一个符号链接。#!/bin/sh
#!/usr/bin/python3
main.py
main
/usr/local/bin
我的问题是该文件的名称为灰色背景红色,并且我无法调用该命令。
答案1
查看man ln
。
ln -s main /usr/local/bin/yourscript
不要为链接提供目录名称/usr/local/bin
。将其命名为您选择的目录中的文件。也许要注意您正在将脚本放入二进制目录中。那不是很干净。
编辑:Python 对于放入目录中的内容可能有点奇怪bin
。大多数东西并不是真正的二进制文件,也不是二进制文件的链接。通常它只是一个自我导入的小 Python 脚本。只需检查其中一些即可。例如pydoc
将以下内容放入/usr/bin/pydoc
:
1 #!/usr/bin/python3.8
1
2 import pydoc
3 if __name__ == '__main__':
4 pydoc.cli()
bin
如果您只想运行 Python 脚本,则无需将其放入目录中。
- 如果你想从另一个程序调用它,你可以将 扩展
PATH
到它所在的目录,例如。和PATH=$PATH:/MY/PATH
。请注意,某些程序使用自己的路径变量。请务必查看一下environmental variables
.对于Python,看看这里,你会发现Python正在使用PYTHONPATH
. - 您
bash
可以只定义一个alias=myscript
.