What's the status of scripts vs entry_points?

script-files array Deprecated equivalent to the script keyword in setup.py (should be avoided in favour of project.scripts)

I think you’re referring to this aspect? I think that’s a setuptools-specific question you’ll want to ask setuptools’ maintainers; on their repository’s discussions tab or something.


The underlying difference between the two scripts vs entry_points -> console_scripts in setup.py is fairly “easy” to see if you build a wheel and do unzip -l <wheel-file>.

The files specified in scripts will end up in the wheel as-is at <project>-<version>.data/scripts/.... These will end up in the bin/ directory of a Python virtual environment.

The entry_points specified in console_scripts will end up in a .txt file in the metadata folder (.dist-info) within the wheel. The latter get launcher files generated for them by the installer (i.e. pip) in a cross-platform manner.

The capability to put arbitrary files into the scripts location isn’t going to be taken away because the ability to put files like <project>-<version>.data/scripts/... isn’t going to be taken away. Whether setuptools supports doing that with their pyproject.toml based configuration is a question for you to ask the setuptools maintainers. :slight_smile:


I’ll flag that the scripts key in setup.py takes a list of files whereas project.scripts in pyproject.toml is a mapping/dictionary/table.

1 Like