安装从命令行运行的Python脚本

de90aj5v  于 2023-06-04  发布在  Python
关注(0)|答案(2)|浏览(158)

我需要使一些python实用程序可以从命令行(OSX Ventura)运行。我一直在看www.example.com的示例和文档setup.py,但没有任何进展。即使是最简单的例子,我也没有取得进展:

目录结构:

./ex
  __init__.py
  myscript.py
  setup.py

myscript.py

#!/usr/local/bin python3
def main():
  print('hello')

setup.py

from setuptools import setup

setup(
    name='myscript',
    version='0.1.0',
    py_modules=['myscript'],
    entry_points={
        'entry_points': [
            'scr=myscript:main',
        ],
    } )

我正在尝试使用各种参数组合进行安装:

pip3 install -e .
pip3 install --user .
pip3 install .

在每种情况下,都找不到新命令。这些例子并没有涵盖可能出现的错误,所以我真的不知道下一步该做什么。

iqjalb3h

iqjalb3h1#

问题是entry_points对象需要在console_scripts组中,以便安装程序将脚本添加到路径中。

from setuptools import setup

setup(
    name='myscript',
    version='0.1.0',
    py_modules=['myscript'],
    entry_points={
        'console_scripts': [
            'scr=myscript:main',
        ],
    } )
mwecs4sa

mwecs4sa2#

使用pyinstaller或在文件中添加shebang(#!
*pyinstaller:

pip install pyinstaller
pyinstaller --onefile myscript.py

这将生成一个名为myscript的可执行文件,它可以像其他任何文件一样运行。有关pyinstaller的莫尔,请参阅:https://pyinstaller.org/en/stable/

***shebang:**快速修复。

将此添加到myscript.py的顶部:

#! /usr/env/python3

(...)  # Rest of code

如果重命名它以删除.py扩展,请使用./myscript.py./myscript从命令行运行它。
(就我个人而言,我从来没有使用过setuptools,所以我不能帮助你)

相关问题