分发没有.py扩展名的Python脚本

6 python distutils setuptools package distutils2

如果我用Python写一个分发包,我把一些脚本在被视为可执行文件scriptssetup.py,有没有办法让他们不要有*.py扩展名的标准方式?仅仅制作没有.py扩展名的文件,还是需要额外的东西?是否会从文件名中删除.py,这会破坏与setup.py/ distutils等Python工具相关的任何功能?谢谢.

jfs*_*jfs 1

如果您需要 Windows 兼容性,则要么不要删除.py扩展,要么使用 setuptools 的entry_points选项自动生成适合系统的脚本文件,例如,要将pip.main()函数安装为脚本,pip请在以下位置指定setup.py

  entry_points=dict(console_scripts=['pip=pip:main', 
          'pip-%s=pip:main' % sys.version[:3]]),
Run Code Online (Sandbox Code Playgroud)

即使您不需要 Windows 兼容性,使用它也是有意义的entry_points,因为它会为您生成指向特定 python 解释器的正确 shebang(其中通用#! /usr/bin/env python将是错误的)。