请问一下类似于 Scrapy 这种直接在命令行就可以执行的 Python 程序是怎么做到的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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

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

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

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

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

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

    你用编辑器查看一下`{PY_HOME}/bin/{command}`的源码就行了啊
    snBDX1b0jJM4ogKd
        21
    snBDX1b0jJM4ogKd  
       Aug 2, 2017 via Android
    cat `which scrapy`
    About     Help     Advertise     Blog     API     FAQ     Solana     923 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 65ms UTC 21:23 PVG 05:23 LAX 14:23 JFK 17:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86