zoukankan      html  css  js  c++  java
  • #!/usr/bin/python3的作用 解决vscode ImportError: No module named xxxx

    在 Python 脚本的第一行经常见到这样的注释:

    #!/usr/bin/env python3

    或者

    #!/usr/bin/python3

    含义

    在脚本中, 第一行以 #! 开头的代码, 在计算机行业中叫做 "shebang", 也叫做 sha-bang / hashbang / pound-bang / hash-pling, 其作用是"指定由哪个解释器来执行脚本".

    为什么要指定解释器?

    举个例子, 很多人在系统中同时安装了 Python2 和 Python3, 但是 2 和 3 是不兼容的, 所以执行脚本时必须指定解释器.

    再比如说, Unix 系统中一般同时安装了多个版本的 Shell, 比如常用的 bash、sh 和 现代的 zsh, 但是这些 shell 的语法并不完全相同, 所以也需要指定解释器.

    如何使用 Shebang 指定 Python 解释器?

    可以在脚本第一行写上 #!/usr/bin/env python3 或者 #!/usr/bin/python3:

    • #!/usr/bin/python3 表示 python3 解释器所处的绝对路径就是 /usr/bin/python3, 路径被写死了, 类似于编程中的"硬编码".
      之所以有这种写法, 是因为在类 Unix 系统中, python 解释器一般情况下都位于这个路径.
      不过, 如果碰到 python 解释器不在该路径下的话, 脚本就无法执行了!
    • #!/usr/bin/env/ python3 表示从 "PATH 环境变量"中查找 python3 解释器的位置, 路径没有被写死, 而是在"环境变量"中寻找 python3 解释器的安装路径, 再调用该路径下的解释器来执行脚本.

    显然, 采用 #!/usr/bin/env python3 的写法更灵活更具有通用性, 推荐使用这种写法.

    注意

    • #!之后的空格是可选的, #!/usr/bin/env python3 和 #! /usr/bin/env python3 这两种写法都是允许的
    • 大部分 Python 文件不必写 Shebang, 只有被直接执行的文件才有必要加入 Shebang

    额外

    Python 脚本开头经常见到这样的代码:

    #!/usr/bin/env python
    #coding=utf-8

    之所以写 #coding=utf-8 是为了指定字符编码.

  • 相关阅读:
    Base64编码原理分析
    对 js 高程 Preflighted Reqeusts 的理解
    js 跨域 之 修改服务器配置-XAMPP-Apache (nginx 拉到最后!)
    js 模拟 select 的 click 事件
    串讲-解释篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包
    js 匿名函数-立即调用的函数表达式
    Java I/O流输入输出,序列化,NIO,NIO.2
    Java8Lambda表达式
    设计模式之适配器模式
    设计模式之装饰器设计模式
  • 原文地址:https://www.cnblogs.com/clemente/p/10543317.html
Copyright © 2011-2022 走看看