平时会写一些小脚本,在 Mac/Linux 上的时候,会创建一个专门存放脚本的路径,然后加入到 PATH 中,打开终端就可以执行。 就好像这样写一个
#! /usr/bin/env python print('Hello~')
保存到 greet 文件中,并把这个文件放入到 PATH 下的路径,那就可以在任意路径下通过 greet 执行。
在 Windows 中,Python 脚本的 #! 要如何指定,文件名后缀要改为什么才可以实现类似的效果?
求大佬解答。
1 89712 2022-10-18 18:49:48 +08:00 via iPhone msys2 了解下 |
![]() | 2 Envov 2022-10-18 19:02:42 +08:00 bat |
![]() | 3 ysc3839 2022-10-18 19:09:55 +08:00 via Android |
4 Lighthughjiajin OP @ysc3839 请问如何关联 py 文件为 python 解释器 |
5 fzls 2022-10-18 19:12:16 +08:00 使用 windows 的文件关联功能,如搜索:windows 10 file type association command line |
6 Lighthughjiajin OP @fzls 已解决,谢谢大佬 |
![]() | 7 ysc3839 2022-10-18 19:25:58 +08:00 via Android @Lighthughjiajin 用 Python 官方提供的安装程序,有 install launcher 的选项,选上。 |
8 Lighthughjiajin OP @ysc3839 是的,但是后面装 vs code 的时候,又把 .py 关联到了 vscode 上 -- |
![]() | 9 flynaj 2022-10-18 19:41:20 +08:00 via Android Windows 是文件关联,用 Python 安装包安装一次就自动关联了。#! /usr/bin/env python 这个是 Linux 下 shell 遵循的一个特性,Windows 并不支持这个特性。 |
![]() | 10 ClericPy 2022-10-18 20:09:28 +08:00 Python3 有个 pylauncher 也就是 py.exe 是识别 shebang 的, 不知道是不是你问的 |
![]() | 11 ysc3839 2022-10-18 21:08:10 +08:00 via Android @ClericPy Launcher 识别只是能自动选择版本,Windows 没有把带 shebang 的脚本当作可执行文件直接执行的机制,就只能依赖 shell 提供的机制,比如说 cmd 会根据文件关联来启动。 |
![]() | 12 ClericPy 2022-10-18 22:31:29 +08:00 @ysc3839 呃, 我怎么印象中加了 shebang 的 py 文件打开方式选 py.exe 以后, 双击就自动切换 python2 和 python3 呢 |
13 hefish 2022-10-18 22:58:17 +08:00 为啥有这种想法? windows 下不是应该写个 bat ,然后用 bat 调用 python 脚本吗? |
![]() | 14 ysc3839 2022-10-18 23:12:51 +08:00 @ClericPy 这没问题呀,Launcher 能识别然后自动选择版本,但是 Launcher 之外还是要依赖文件打开方式呀 |
15 elementp 2022-10-19 23:46:47 +08:00 powershell core 在 macOS/Linux 上是支持 shebang 的,不知道 Windows 下还支不支持 |