V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2017-08-01 23:16:47 +08:00 · 5105 次点击
    这是一个创建于 2675 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    如果你说的是 scrapy 的参数(原谅我并没有看出你想表达这个)后面有人给出了回应
    Morriaty
        20
    Morriaty  
       2017-08-02 13:22:04 +08:00
    本身就是 py 脚本程序啊.....

    你用编辑器查看一下`{PY_HOME}/bin/{command}`的源码就行了啊
    snBDX1b0jJM4ogKd
        21
    snBDX1b0jJM4ogKd  
       2017-08-02 13:55:10 +08:00 via Android
    cat `which scrapy`
    brucezz
        22
    brucezz  
       2017-08-02 14:36:01 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1019 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:54 · PVG 05:54 · LAX 13:54 · JFK 16:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.