网站首页 > 技术文章 正文

我们经常会在别人的脚本或者项目的入口文件里看到第一行是下面这样
#!/usr/bin/python
或者这样
#!/usr/bin/env python
这两者有什么区别呢?
稍微接触过 linux 的人都知道 /usr/bin/python 就是我们执行 python 进入console 模式里的 python
而当你在可执行文件头里使用 #! + /usr/bin/python ,意思就是说你得用哪个软件 (python)来执行这个文件。
那么加和不加有什么区别呢?
不加的话,你每次执行这个脚本时,都得这样:python xx.py ,
有没有一种方式?可以省去每次都加 python 呢?
当然有,你可以文件头里加上#!/usr/bin/python ,那么当这个文件有可执行权限 时,只直接写这个脚本文件,就像下面这样。
明白了这个后,再来看看 #!/usr/bin/env python 这个 又是什么意思 ?
当我执行 env python 时,自动进入了 python console 的模式。
这是为什么?和 直接执行 python 好像没什么区别呀
当你执行 env python 时,它其实会去 env | grep PATH 里(也就是 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin )这几个路径里去依次查找名为python的可执行文件。
找到一个就直接执行,上面我们的 python 路径是在 /usr/bin/python 里,在 PATH 列表里倒数第二个目录下,所以当我在 /usr/local/sbin 下创建一个名字也为 python 的可执行文件时,就不会执行 /usr/bin/python 了。
具体演示过程,你可以看下面。
那么对于这两者,我们应该使用哪个呢?
个人觉得应该优先使用 #!/usr/bin/env python,因为不是所有的机器的 python 解释器都是 /usr/bin/python 。
(完)
- 上一篇: Python爬虫入门之爬取图片
- 下一篇: 为什么我的python总是学不好
猜你喜欢
- 2025-01-05 译|Python幕后(3):漫步CPython源码
- 2025-01-05 c语言和python的区别
- 2025-01-05 Python常见的数据结构实现
- 2025-01-05 为什么我的python总是学不好
- 2025-01-05 Python爬虫入门之爬取图片
- 2025-01-05 python封装使用语法规则
- 2025-01-05 Python之Pandas使用详解
- 2025-01-05 一张思维导图概括Python的基本语法, 一周的学习成果都在里面了
- 2025-01-05 妙趣横生Python海龟图turtle
- 2025-01-05 使用Python获取HTTP请求头数据
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)