为了账号安全,请及时绑定邮箱和手机立即绑定

使我的 pypi 脚本可执行,而无需每次都指定脚本的路径

使我的 pypi 脚本可执行,而无需每次都指定脚本的路径

MMMHUHU 2022-06-02 17:49:28
最近我为 PyPI 创建了一个 python 脚本。您可以使用 pip install. pip install问题是,当您位于ScriptsPython 本地化的文件夹中时,您只能执行使用 下载的脚本( your_python_location/Scripts/myscript.py)。但这会给用户带来麻烦。所以我想问,我怎样才能让你可以从任何地方执行脚本?(就像您可以在不指定 pip 位置的情况下使用 pip 一样)。我也不希望每个用户都需要设置脚本的路径。我的 Setup.py(也许它有帮助):import setuptoolswith open("README.md", "r") as fh:    long_description = fh.read()with open('requirements.txt') as f:    requirements = f.read().splitlines()setuptools.setup(    name="boston-housing-prediction",    version="0.2.0a0",    author="xx",    author_email="xxx@gmail.com",    py_modules=["misc_libary", "polynomial_regression_libary", "linear_regression_libary"],    scripts=["boston-housing-main.py"],    description="Predict housing prices in boston.",    long_description=long_description,    long_description_content_type="text/markdown",    url="https://github.com/XXX",    packages=setuptools.find_packages(),    classifiers=[        "License :: OSI Approved :: MIT License",        "Operating System :: OS Independent",        'Programming Language :: Python :: 3.5',        'Programming Language :: Python :: 3.6',        'Programming Language :: Python :: 3.7'    ],    keywords="regression meachine-learning housing_prices_boston learning_purpose",    license="MIT",    install_requires=requirements,    python_requires='>=3.5',)
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以指定entry_pointsin setup.py,例如


setuptools.setup(

    # ...

    entry_points = {

        'console_scripts': [

            'boston_housing = boston-housing-main:main'

        ]

    },

)

这将导致pip install在某个地方安装一个包装器/usr/local/bin/boston_housing,基本上拉入模块boston-housing-main并运行其main()功能。


您可能想scripts用这个替换条目,尽管您本身没有理由不能同时拥有两者。


查看完整回答
反对 回复 2022-06-02
?
大话西游666

TA贡献1817条经验 获得超14个赞

制作全局可访问的 Python 脚本的一种方法是让您的用户调用模块本身。如果您的包名为“boston-housing-prediction”,您的用户将能够使用以下命令从任何地方调用您的脚本:

python -m boston-housing-prediction

这样做是在你的包中调用一个__main__.py文件。这就像任何其他 Python 脚本一样,因此它可以正常接受参数。您所要做的就是将您的脚本重命名为__main__.py并将其放入包目录(不是包含 setup.py 的文件夹,而是放入包含包脚本的文件夹),或创建一个__main__.py调用您的脚本的新脚本(您可以只导入脚本,如果它们在同一个文件夹中)。

这种方法的好处是它独立于平台,只依赖于包的正确安装。它根本不依赖操作系统。


查看完整回答
反对 回复 2022-06-02
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号