首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >首选的Python3 shebang:`#!/usr/bin/env Python3 3‘或`#!/usr/bin/Python3 3’?

首选的Python3 shebang:`#!/usr/bin/env Python3 3‘或`#!/usr/bin/Python3 3’?
EN

Stack Overflow用户
提问于 2020-11-13 22:43:44
回答 1查看 1.1K关注 0票数 1

我应该使用什么Python:#! /usr/bin/env python3还是#! /usr/bin/python3

#! /usr/bin/python3

  • 古典的方式。
  • 没有/usr/bin/的发行版有一个符号链接
  • 通过python3在shell上运行相同的Python
  • 对于他们的软件包(SuSE软呢帽),发行版更喜欢它而不是SuSE

#! /usr/bin/env python3

  • 声称更便携。
  • 很多人(来自互联网络的随机的)推荐它。

为了使我的问题更加精确:当我想编写软件并在GitHub上发布时,我应该使用什么?

EN

回答 1

Stack Overflow用户

发布于 2020-11-13 22:52:03

既然您提到您将在GitHub上发布软件,那么您使用什么并不重要。其实你根本就不需要把它放进去。

当您发布一个供他人使用的包时,安装程序(pip)将在其他人安装您的包时重写您的套头。这是因为它的内容或存在在某种程度上依赖于平台。在Windows上,它根本不会放一个shebang,而在linux/macOS上,它会将shebang硬编码到用于执行安装的Python可执行文件中。

例如,请参见stdlib distutils中的shebang重写以及setuptools (setuptools是distutils上的monkeypatch,这是pip现在实际使用的)。

您可以自己尝试一下,您可以将#!potato放入源代码中,然后将包安装在虚拟环境中,土豆就会消失,它将被重写到like的可执行文件中,比如#!/path/to/venv/bin/python

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64828983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档