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

2024-04-20 13:53:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚遇到了一个叫谢邦的人当他们第一次学习Python的时候,我仍然在学习如何工作。在做了一些研究之后,我在this page上找到了四种不同类型的shebang。不过,我不太确定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/.

有谁能给初学者一点更多的信息,让他们知道这些shebang是如何在Windows上工作的吗?在


Tags: andinenvgo类型binonwindows
1条回答
网友
1楼 · 发布于 2024-04-20 13:53:55

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

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

相关问题 更多 >