首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

求指点: Python 爬虫 IDE 能跑终端不行

  •  
  •   magic3584 · 359 天前 · 1591 次点击
    这是一个创建于 359 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用 pycharm 写好了一个爬虫后,直接在 spider_main.py 上右击可以运行, 但是终端运行出错。

    2

    上传项目到 github 上后在 clone 下来, 直接在 pycharm 里右击运行 spider_main.py,也提示错误了

    3

    文件目录结构如下:

    2

    GitHub 地址: https://github.com/magic3584/crawl_demo

    25 回复  |  直到 2017-07-01 11:38:36 +08:00
        1
    cxbig   359 天前   ♥ 1
    IDE 有自动环境选择,命令行你可能没有配好。
        2
    magic3584   359 天前
    @cxbig 环境不就是用的 venv 就行了吗?
        3
    wlsnx   359 天前   ♥ 1
    你在 crawl_demo 这一层目录,运行 python3 douban_spider/spider_main.py 试试
        4
    cxbig   359 天前   ♥ 1
    @magic3584 右上角点击右键那个运行是独立于命令行的
    先打开配置 > Project > Project Interpreter 看看你用的哪个 python
    再去命令行看 which python3 确保都是一致的

    然后回到 Project Interpreter 那里换不同 python 版本,用 绿箭头( Run )跑
        5
    xiahei   359 天前 via Android   ♥ 1
    直接运行 spider_main.py 他就是最顶层的包 /模块 /文件,也就是 if __name__ == “__main__” 的原理,故不会再往上找。要改只需要在 douban_spider 同级目录下添加入口文件,把 douban_spider 作为包,导入你要运行的模块即可。
        6
    magic3584   359 天前
    @wlsnx 不行。。。
        7
    magic3584   359 天前
    @cxbig 项目里 python interpreter 显示
    name:Python 3.6.0 virtualenv at ~/Desktop/practice/crawl_demo/venv
    Interpreter Path:/Users/wang/Desktop/practice/crawl_demo/venv/bin/python
    终端里 which python3
    /Users/wang/Desktop/practice/crawl_demo/venv/bin/python3
        8
    magic3584   359 天前
    @xiahei
    if __name == '__main__' 我现在是写在 spider_main.py 里。能否详细说下你说的入口文件怎么弄吗?
        9
    cxbig   359 天前   ♥ 1
    @magic3584 看上去一个是 v2 一个是 v3 啊,你用 v2 的那个跑一下看看
        10
    magic3584   359 天前
    @cxbig 我把两个改成一样了。直接在 spider_mian.py 上右击运行也跑不了。还是 module 的问题
        11
    xiahei   359 天前   ♥ 1
    @magic3584 最简单的办法:

    ```shell
    $ cd crawl_demo
    $ mv douban_spider/spider_main.py .
    $ python3 spider_main.py
    ```

    建议去看看 Python 模块导入机制。
        12
    magic3584   359 天前
    @xiahei 要不你去 https://github.com/magic3584/crawl_demo clone 下来试试?我试了你说的方法,还是提示一样的错误。。。
        13
    magic3584   359 天前
    @xiahei 我是 clone 下来后弄了个 virtualenv,然后在 venv 里执行 python 的
        14
    xiahei   359 天前   ♥ 1
    @magic3584 确定按我说的做了?报错了截图呢,目录结构呢?

        15
    xiahei   359 天前   ♥ 1
    @magic3584 上面的应该是忘了删 douban_spider/spider_main.py,更正如下

        16
    GoBeyond   359 天前 via Android   ♥ 1
    简单看了一下,我先不分析你在 IDE 里为什么能跑这个,我搞不懂你在主入口头部 import 时还要加上`from douban_spider `这一句?想写模块?
    解决方法就是把`from douban_spider`去掉,毕竟你主入口在那个目录里,你要是这么写的话解释器根本找不到那个模块。如果硬要写 from 的话,把那句改成`from . import html_downloader, html_parser, html_outputer`,这样解释器也会从当前目录里找对应模块
    建议学习一下 py 的 import 路径问题。
        17
    magic3584   359 天前
    @xiahei 可以了。。。我还有一点疑问:
    spider_main.py 的第一行 from douban_spider import html_downloader, html_parser, html_outputer 为什么会出现 4 个错误呢?但是不影响运行。。。而且手动输入的话也没有提示。不像导入 bs4 那样手动输入的时候会提示
        18
    aaronzjw   359 天前 via Android   ♥ 1
    @magic3584 出错的内容贴出来看看
        19
    magic3584   359 天前
    @GoBeyond 我看着教程里就这样写的。教程也是用 IDE 跑的。我想在终端里试试发现怎么都搞不好。。。按照您的指点改成 from .douban_spider import xxx 可以了。结构什么的还是不太懂,还得再看看。谢谢
        20
    magic3584   359 天前
    @xiahei #16 解释清楚了,谢谢您的指点
        21
    magic3584   359 天前
    @aaronzjw 现在可以了,谢谢
        22
    xiahei   359 天前
    @magic3584 帮不了你,恕我愚钝,猜不透那 4 个错误是啥子错误,也不知道什么手动输入。北京有个龙泉寺,去看看,你先别告诉大师报的错,看大师能算出来你的代码报什么错误你给什么输入不。
        24
    magic3584   359 天前
    @xiahei
    我的意思是出现这个错误
    ![4]( http://oscknacsp.bkt.clouddn.com/4.png)

    注释掉的话反而运行不了,但是手动敲代码的话也没有提示,不像导入 bs4 一样打了 from b 就会提示 bs4
        25
    zeny620   358 天前 via Android
    现在寺庙都有这业务了?!
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1791 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 19ms · UTC 15:09 · PVG 23:09 · LAX 08:09 · JFK 11:09
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1