gpt4 book ai didi

python - 如何使用 setuptools 为 windows 命令行安装 python 脚本?

转载 作者:行者123 更新时间:2023-12-04 11:34:29 25 4
gpt4 key购买 nike

我一直在开发一个 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 命令行上可用?

我的 setup.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='dszopa@iastate.edu',
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

编辑 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__到我的 __init__from .ytsdl import __main__
我非常不确定我是否朝着正确的方向前进,程序已编译但没有使用相同的命令

最佳答案

  • 开发时,请确保所有脚本文件中名称中包含“python”(#!/usr/bin/env python)的shebang,这些脚本文件稍后应由用户直接执行,即使之后目标平台上的路径不同(https://docs.python.org/3/distutils/setupscript.html#installing-scripts)
  • 将所有用户可调用的脚本放在 scriptssetup 调用的 setup.py 参数中,如您所示(尽管我不会省略 .py 扩展名)。

  • 一旦以 pip install 安装在目标平台上,目标 shebang 就会被一个合适的替换,并且脚本被放置在找到它们的路径中。
    如果用户正确设置了 Python,她应该能够在不添加 python 的情况下使用它们。
    例如,对于 Windows, Python Launcher ( py.exe ) 应该与 .py 文件相关联,这在 Python 安装过程中是可选的。要省略 .py 扩展名, .py 可以在 PATHEXT 环境变量中。

    关于python - 如何使用 setuptools 为 windows 命令行安装 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35566376/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com