iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python执行py文件需要可执行权限吗
  • 653
分享到

Python执行py文件需要可执行权限吗

2023-07-05 11:07:37 653人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“python执行py文件需要可执行权限吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python执行py文件需要可执行权限吗”吧!案例解析这个问题描述起来有点违反直觉,

这篇文章主要讲解了“python执行py文件需要可执行权限吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python执行py文件需要可执行权限吗”吧!

案例解析

这个问题描述起来有点违反直觉,要执行一个文件难道不应该需要可执行权限吗?让我们先来看一个例子:

# module1.pydef test():    print ('hello world!') if __name__ == '__main__':    test()

这是一个名为module1.py的文件,这个文件仅有可读权限:

[dechin@dechin-manjaro excute]$ ll
-r--r--r-- 1 dechin dechin   78  1月 15 17:06 module1.py

我们可以直接用python来运行一下这个文件:

[dechin@dechin-manjaro excute]$ python3 module1.py 
hello world!

我们发现即使只有可读权限,这个文件也是可以运行的。为了严格验证,我们这里创建另外一种模式的测试,通过import来导入python文件,是否也不需要可执行权限呢?

# module2.pyfrom module1 import test if __name__ == '__main__':    test()

同样的,我们新建的文件也未赋予可执行权限:

[dechin@dechin-manjaro excute]$ ll
-r--r--r-- 1 dechin dechin   78  1月 15 17:06 module1.py
-r--r--r-- 1 dechin dechin   64  1月 15 17:44 module2.py

我们执行一下module2.py这个文件:

[dechin@dechin-manjaro excute]$ python3 module2.py 
hello world!

那么我们的测试就完成了,经过验证,执行普通的py文件是不需要可执行权限的,这对我们的权限最小化约束就产生了一定的启发作用。

原理解释

在stackoverrun上面有一条回复,作者cedbeu是这样描述的:python本身承担了语言解析器的角色,py文件不过是一个文本文件,真正执行的二进制文件是python而不是用户所创建的py文件。因此,即使去掉py文件的可执行权限,该py文件也是可以通过python来执行的。但是,如果我们去掉了python的可执行权限,那就无法正常执行这一条任务了。

扩展测试

如果将py文件编译成pyc和pyo格式的文件,此时的任务执行是否需要可执行权限呢?首先测试pyc文件:

[dechin@dechin-manjaro excute]$ python3 -m py_compile module1.py

执行完编译,我们会在当前目录下发现一个__pycache__的文件夹,编译好的pyc文件就存储在这个目录下:

[dechin@dechin-manjaro excute]$ tree
.
├── module1.py
├── module2.py
└── __pycache__
    └── module1.cpython-38.pyc
 
1 directory, 3 files
[dechin@dechin-manjaro excute]$ cd __pycache__/
[dechin@dechin-manjaro __pycache__]$ ll
总用量 4
-rw-r--r-- 1 dechin dechin 259  1月 15 18:01 module1.cpython-38.pyc

这里我们看到pyc文件的文件名会固定有个后缀,同样也没有可执行权限,这里我们用同样的命令来执行pyc文件:

[dechin@dechin-manjaro __pycache__]$ ll
-r--r--r-- 1 dechin dechin 259  1月 15 18:01 module1.cpython-38.pyc
-rw-r--r-- 1 dechin dechin 259  1月 15 18:13 module1.pyc
-r--r--r-- 1 dechin dechin  64  1月 15 18:09 module2.py
[dechin@dechin-manjaro __pycache__]$ python3 module1.cpython-38.pyc 
hello world!
[dechin@dechin-manjaro __pycache__]$ python3 module2.py 
hello world!

这里我们可以发现,不论是直接执行pyc文件,或者是改名为module1.pyc之后再通过module2.py导入的方式,都可以正常的被执行,而且都不具有可执行权限。接下来我们再尝试一下pyo文件:

[dechin@dechin-manjaro excute]$ python3 -O -m py_compile module1.py 

执行带有opt的pyc文件:

[dechin@dechin-manjaro __pycache__]$ python3 module1.cpython-38.opt-1.pyc 
hello world!

同样的,都可以正常的被执行,即使没有可执行权限。

技术彩蛋

即使我们把pyc文件强行改名为py文件,同样也是不影响任务执行的:

[dechin@dechin-manjaro __pycache__]$ cp module1.cpython-38.opt-1.pyc module1.py
[dechin@dechin-manjaro __pycache__]$ ll
总用量 20
-rw-r--r-- 1 dechin dechin 259  1月 15 18:17 module1.cpython-38.opt-1.pyc
-r--r--r-- 1 dechin dechin 259  1月 15 18:01 module1.cpython-38.pyc
-rw-r--r-- 1 dechin dechin 259  1月 15 18:20 module1.py
-rw-r--r-- 1 dechin dechin 259  1月 15 18:13 module1.pyc
-r--r--r-- 1 dechin dechin  64  1月 15 18:09 module2.py
[dechin@dechin-manjaro __pycache__]$ python3 module1.py
hello world!

感谢各位的阅读,以上就是“Python执行py文件需要可执行权限吗”的内容了,经过本文的学习后,相信大家对Python执行py文件需要可执行权限吗这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Python执行py文件需要可执行权限吗

本文链接: https://www.lsjlt.com/news/351515.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python执行py文件需要可执行权限吗
    这篇文章主要讲解了“Python执行py文件需要可执行权限吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python执行py文件需要可执行权限吗”吧!案例解析这个问题描述起来有点违反直觉,...
    99+
    2023-07-05
  • 详解Python执行py文件是否需要可执行权限
    目录案例解析原理解释扩展测试技术彩蛋案例解析 这个问题描述起来有点违反直觉,要执行一个文件难道不应该需要可执行权限吗?让我们先来看一个例子: # module1.py def tes...
    99+
    2023-03-13
    Python执行py文件权限 Python执行py文件 Python py文件
  • linux命令-给文件添加可执行权限
    平时在开发中经常会用到linux,所以记录一些经常使用的linux命令来增强记忆。 创建文件:touch (文件名.txt) 使用文件编辑器打开文件:vim (文件名.txt) 编辑文件内容:i ...
    99+
    2023-10-18
    linux 运维 服务器
  • Python可执行文件反编译教程(exe转py)
    python的便利性,使得如今许多软件开发者、黑客都开始使用python打包成exe的方式进行程序的发布,这类exe有个特点,就是可以使用反编译的方法得到程序的源码,是不是很神奇?我...
    99+
    2024-04-02
  • linux怎么执行可执行文件
    在Linux中,执行可执行文件的基本语法是: ./可执行文件名 其中,"./"表示当前目录。所以,如果可执行文...
    99+
    2024-02-29
    linux
  • Java执行exe,bat等可执行文件
    Process proc = Runtime.getRuntime().exec(command);[@more@]import java.io.BufferedReader;import java.io.IOException;impor...
    99+
    2023-06-03
  • Python 打包可执行文件
       Python程序需要依赖本机安装的Python库,若想在没有安装Python的机器上运行,则需要打包分发,目前有两个比较好用的工具:PyInstaller和py2exe。其中py2exe应用在windows下,而PyInstall则可...
    99+
    2023-01-31
    可执行文件 Python
  • linux怎么赋予文件执行权限
    要给文件赋予执行权限,可以使用chmod命令。命令格式如下:```shellchmod [权限模式] 文件名```权限模式可以使用数...
    99+
    2023-09-16
    linux
  • linux如何给文件添加执行权限
    要给Linux中的文件添加执行权限,可以使用`chmod`命令。`chmod`命令用于更改文件或目录的权限。要给文件添加执行权限,可...
    99+
    2023-08-22
    linux
  • C++调用python(执行py文件)的全过程
    1、首先要配好vs开发工程 注意版本;我这使用32位的python那么我vs工程这边也选择32位的编译环境去配置 注意点;需要将python安装目录的一些文件拷过来作为vs工程使用。...
    99+
    2024-04-02
  • Python代码中执行另外一个.py文件
    关于Python 脚本如何执行另一个脚本,可以使用os.system()来实现 https://blog.csdn.net/shenjin_s/article/details/79976954 简单粗暴的方式。。。 impor...
    99+
    2023-01-31
    另外一个 代码 文件
  • python将多个py文件和其他文件打包为exe可执行文件
    目录1、准备好打包文件2、下载安装Pyinstaller3、生成.spec文件4、配置.spec文件5、生成exe文件前言: 最近在学习PYQT5,感觉还挺有趣的,顺便记录一下自己的...
    99+
    2024-04-02
  • pycharm如何打包py项目为.exe可执行文件
    本文小编为大家详细介绍“pycharm如何打包py项目为.exe可执行文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“pycharm如何打包py项目为.exe可执行文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-04
  • python执行sql文件
    最近遇到一对需要执行的sql文件,sql文件内是insert 语句。如下: INSERT INTO hs_his.stock_industry VALUES ('采掘', '000006', '深振业A'); INSERT INT...
    99+
    2023-01-31
    文件 python sql
  • python打包为linux可执行文件
    1、将python文件打包后(dist及log文件不需要打包)上传至linux服务器,同一目录下 注:不要打包成zip格式,zip从windos上传至linux解压后会存在编码格式不一致的问题 2、...
    99+
    2023-08-31
    python linux 开发语言
  • python执行js文件
    #!/usr/bin/python # -*- coding: UTF-8 -*- import execjs,os #执行本地自定义的js print execjs.compile('function test(){' ...
    99+
    2023-01-31
    文件 python js
  • Linux如何运行可执行文件
    在Linux中运行可执行文件可以通过以下几种方式:1. 在命令行中直接运行可执行文件:```./可执行文件名```在当前目录下使用 ...
    99+
    2023-09-27
    Linux
  • pycharm内如何打包py项目为.exe可执行文件
    一安装pyinstaller(两种方式) 通过命令:pip install pyinstaller 具体操作:打开pycharm下方的Terminal终端,输入:pip install pyinstaller,回车  2.在pycha...
    99+
    2023-09-16
    pycharm python ide
  • ubuntu可执行文件不能执行了如何解决
    如果 Ubuntu 上的可执行文件不能执行了,可以尝试以下解决方法: 检查文件权限:使用 ls -l 命令查看文件的权限,确保文...
    99+
    2024-02-29
    ubuntu
  • python怎么编译成可执行文件
    在Python中,可以使用pyinstaller库将Python代码编译成可执行文件,以下是使用pyinstaller的步骤:1. ...
    99+
    2023-08-18
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作