推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
misaka19000
V2EX  ›  Python

请问一下类似于 Scrapy 这种直接在命令行就可以执行的 Python 程序是怎么做到的?

  •  
  •   misaka19000 ·
    RitterHou · Aug 1, 2017 · 6218 views
    This topic created in 3390 days ago, the information mentioned may be changed or developed.

    直接在命令行敲 scrapy 就可以执行命令了,很好奇这种是怎么做到的,自己也想做个这样的程序。。。

    22 replies  •  2017-08-02 14:36:01 +08:00
    chinvo
    chinvo
    Aug 1, 2017
    2
    aristotll
    aristotll
    Aug 1, 2017
    3
    windows 估计是 scrapy.exe Linux 估计是 Python 脚本 加个 shell 头
    julyclyde
    julyclyde
    Aug 1, 2017
    5
    entrypoint
    misaka19000
    misaka19000
    OP
    Aug 2, 2017
    6
    @chinvo #2 没看懂到底是怎么做的,能再详细的解释一下吗?
    gyh
    gyh
    Aug 2, 2017
    7
    @misaka19000 他的意思是让你自己搜索,因为这是很明显搜索就可以得到答案的问题
    binux
    binux
    Aug 2, 2017 via Android
    8
    setup.py 有设置,安装的时候给你装了一个指令
    misaka19000
    misaka19000
    OP
    Aug 2, 2017
    9
    @gyh #7 搜索了,但是搜索的结果并不是我想要的
    misaka19000
    misaka19000
    OP
    Aug 2, 2017
    10
    @gyh #7 我是没有搜到想要的内容才来问的
    misaka19000
    misaka19000
    OP
    Aug 2, 2017
    11
    @gyh #7 我感觉他给的搜索内容就是一堆废话,我当然之后怎么在 Linux 里面设置 Python 可直接运行并且加入到环境变量中,但是这和我问的问题有关系吗?估计他根本也没看懂我在问什么就随便丢个链接了
    Jat001
    Jat001
    Aug 2, 2017
    12
    setup(
    entry_points={
    'console_scripts': [
    'command = pkg.bin.cli:main',
    ],
    }
    )
    Trim21
    Trim21
    Aug 2, 2017
    14
    我知道的两个办法
    1. 如果你开发的是一个 python 的包,希望通过 pip 安装,就是 12 楼的办法
    2. 如果只是一个 python 文件,就是 1 楼想告诉你的办法,把 python 文件 chmod +x 之后放到 path 里面去
    dsg001
    dsg001
    Aug 2, 2017
    15
    查看下安装包代码呗
    oott123
    oott123
    Aug 2, 2017 via Android
    16
    你要找的是不是:REPL
    mentalkiller
    mentalkiller
    Aug 2, 2017
    17
    @misaka19000 你可能需要:docopt (Python3 命令行参数解析工具)
    slideclick
    slideclick
    Aug 2, 2017
    18
    12 楼的办法,
    scrapy.py 里面有一句 if __name__== 'main'
    chinvo
    chinvo
    Aug 2, 2017
    19
    @misaka19000 #11 我个人认为我之前对你的问题的理解没有错误,审题后得出你想要把 py 文件加执行权限然后丢 path

    如果你说的是 scrapy 的参数(原谅我并没有看出你想表达这个)后面有人给出了回应
    Morriaty
    Morriaty
    Aug 2, 2017
    20
    本身就是 py 脚本程序啊.....

    你用编辑器查看一下`{PY_HOME}/bin/{command}`的源码就行了啊
    snBDX1b0jJM4ogKd
    snBDX1b0jJM4ogKd
    Aug 2, 2017 via Android
    21
    cat `which scrapy`
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2133 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 14:30 · PVG 22:30 · LAX 06:30 · JFK 09:30
    ♥ Do have faith in what you're doing.