平时会写一些小脚本,在 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 下还支不支持
|