gpt4 book ai didi

python - Windows 上这 4 种不同类型的 Python shebang 之间有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 10:05:16 26 4
gpt4 key购买 nike

我刚刚在学习 Python 时第一次遇到 shebangs (#!),我仍在努力理解它们的工作原理。做了一些研究后,我登陆了 this page它列出了四种不同类型的 shebangs。但是,我不太确定在 Windows 中有什么区别。

#! /usr/bin/env python
#! /usr/bin/python
#! /usr/local/bin/python
#! python

现在,我敢打赌第一个与虚拟环境有关,但我不太确定是什么。根据这个 StackOverflow thread ,上面列出的路径实际上是针对 POSIX 系统的,而不是针对 Windows 的……这让我更加困惑,因为它们以某种方式被转换为 Windows 目录。这是一个引用:

A bin directory is created on POSIX systems only . . . Some paths within the virtualenv are slightly different on Windows: scripts and executables on Windows go in ENV\Scripts\ instead of ENV/bin/ and libraries go in ENV\Lib\ rather than ENV/lib/.

任何人都可以向初学者提供更多有关这些 shebangs 在 Windows 上的工作原理的更多信息吗?

最佳答案

The documentation并不完全明确,但根据我的阅读,这些 shebang 行之间没有区别。 Windows 上的 shebang 处理是纯粹的“虚拟”——也就是说,shebang 行中的路径实际上并未映射到 Windows 文件系统上的任何路径。相反,使用这些“虚拟路径”中的任何一个都意味着“在通过 py Python 启动程序运行此文件时使用默认系统 Python”。在 Windows 上允许 shebang 行的目的是让 Python 脚本指定 Python 或 Python 版本(例如,python3)的参数。您可以在上面链接的文档中找到有关如何确定默认系统 Python、如何覆盖它等的更多信息。

顺便说一句,请注意,在 Windows 上,这些 shebang 仅在您使用 py 启动器运行 Python 脚本时使用。

关于python - Windows 上这 4 种不同类型的 Python shebang 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32064220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com