gpt4 book ai didi

python - 如何在 Linux 中赋予所有 Python 脚本可执行权限?

转载 作者:行者123 更新时间:2023-11-28 21:09:25 24 4
gpt4 key购买 nike

假设我有一个名为 a.py 的 python 脚本,如下所示:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author : Bhishan Poudel
# Date : Jul 13, 2016


# Imports


# Script
print("hello")

我可以通过两种方式运行这个脚本:
使用python解释器:

python3 a.py

更改权限

chmod a+x a.py; ./a.py

问题
如何在不一直使用 chmod a+x script_name 的情况下运行任何新的或旧的 python 脚本。

我对我的计算机具有根访问权限和用户访问权限。

基本上我想要所有 .py 文件的可执行权限,我们该怎么做?

我尝试了不同的 shebang,例如:

#!/usr/bin/python3
#!/usr/bin/env python3
#!/usr/local/bin/python3
#!/usr/local/bin/env python3

python 解释器也在 $PATH 中。echo $PATH 的输出如下:

/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/opt/local/bin:/Users/poudel/phosim:/Users/poudel/Applications:/usr/local/octave/3.8.0/bin:/Users/poudel/Applications/Geany.app/Contents/MacOS/:/opt/local/bin:/Users/poudel/phosim:/Users/poudel/Applications:/usr/local/octave/3.8.0/bin:/Applications/Geany.app/Contents/MacOS/:/opt/local/bin:/Users/poudel/phosim:/Users/poudel/Applications:/usr/local/octave/3.8.0/bin:/Applications/Geany.app/Contents/MacOS/

另外,ls/usr/bin/py* 有:

/usr/bin/pydoc*            /usr/bin/python2.5@        /usr/bin/pythonw*
/usr/bin/pydoc2.5@ /usr/bin/python2.5-config@ /usr/bin/pythonw2.5@
/usr/bin/pydoc2.6@ /usr/bin/python2.6@ /usr/bin/pythonw2.6@
/usr/bin/pydoc2.7@ /usr/bin/python2.6-config@ /usr/bin/pythonw2.7@
/usr/bin/python* /usr/bin/python2.7@
/usr/bin/python-config* /usr/bin/python2.7-config@

相关链接:
http://effbot.org/pyfaq/how-do-i-make-a-python-script-executable-on-unix.htm
Permission Denied when executing python file in linux
bash permission denied for python
Permission denied when launch python script via bash

最佳答案

艰难的道路

以 root 权限运行以下命令:

find /your/path/ -type f -name "*.py" -exec chmod u+x {} \;

注意:

chmod 如果您是 .py 文件的所有者,则无需以 root 身份运行。

聪明的方式

编写一个脚本来处理这个问题。

#!/bin/bash
if [ -f "$1" ]
then
geany "$1" # You could also use xdg-open if you set geany to open .py files
else
cp /path/to/python/startup/template "$1" # You may omit this if you don't have a default template
chmod u+x "$1"
geany "$1"
fi

将脚本保存为 pycreator/usr/bin/ 中,然后执行

chown root:root /usr/bin/pycreator
chmod +x-w /usr/bin/pycreator

要使用 pycreator 创建新脚本,请执行

pycreator calculator.py

还有 [ this ] @choroba 指向的答案在他的评论中提供了这方面的宝贵见解。

关于python - 如何在 Linux 中赋予所有 Python 脚本可执行权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38355791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com