如何使用setuptools为Windows命令行安装Python脚本?

2023-11-25

我一直在开发一个 python 命令行应用程序,我希望它可以从 Windows 上的命令提示符以及 OSX 和 Linux 上的终端运行。 我的目标是制作一个 pip 模块,使我的应用程序在安装后可以在命令行上使用。

使用设置工具,我可以使用以下命令让脚本在 Linux 和 OSX 上运行:

youtube-song-downloader <search query>

运行后:

python setup.py install

通过 pip 安装后也可以直接使用

但是当我尝试在 Windows 上使用相同的 setup.py 时,它无法识别该命令(可能它没有添加到路径中)

我该如何让我的脚本可以通过 pip install 或 setup.py install 在 Windows 命令行上使用?

我的设置.py:

#!/usr/bin/env python

from setuptools import setup

setup(name='youtube-song-downloader',
      version='0.1',
      description='A program used to search and download songs from Youtube.',
      url='https://github.com/dszopa/youtube-song-downloader',
      author='Daniel Szopa',
      author_email='[email protected]',
      license='MIT',
      install_requires=[
          'youtube_dl',
          'google-api-python-client',
          'pytest',
      ],
      packages=['ytsdl'],
      scripts=['bin/youtube-song-downloader'],
      include_package_data=True,
      zip_safe=False)

我的程序结构如下:

+ bin
  - youtube-song-downloader
+ tests
+ ytsdl
  - songDownloader.py
  - settings.json
- .gitignore
- MANIFEST.in
- requirements.txt
- setup.py

如果您对我的代码还有任何疑问,我的 github 存储库是here


Edit 1

我将其添加到我的 setup.py 中

  entrypoints={
    'console_scripts': [
      'youtube-song-downloader = ytsdl:main',
    ]
  },

我还创建了一个__main__.py:

#!/usr/bin/env python

import sys
import os
import ytsdl

if __name__ == "__main__":
  main()

def main():
  #script from bin/youtube-song-downloader

并且还添加了__main__ to my __init__ with from .ytsdl import __main__

我非常不确定我是否朝着正确的方向前进,程序已编译,但没有使用相同的命令


  1. 开发时,确保你有一个包含“python”的shebang(#!/usr/bin/env python)在所有稍后应由用户直接执行的脚本文件的名称中,甚至后来目标平台上的路径也不同(https://docs.python.org/3/distutils/setupscript.html#installing-scripts)
  2. 将所有用户可调用的脚本放入scripts的论点setup打电话给你的setup.py正如你所展示的(尽管我不会省略.py扩大)。

一旦安装在目标平台上pip install目标 shebang 将被替换为合适的 shebang,并且脚本将被放置在找到它们的路径中。

如果用户正确设置了 Python,她应该能够使用它们而无需预先添加python.

以 Windows 为例,Python启动器 (py.exe)应该与.py文件,这些文件是在 Python 安装过程中可选提供的。要省略.py扩大,.py可以在PATHEXT环境变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用setuptools为Windows命令行安装Python脚本? 的相关文章

随机推荐