我用 pycharm 写好了一个爬虫后,直接在 spider_main.py 上右击可以运行, 但是终端运行出错。
上传项目到 github 上后在 clone 下来, 直接在 pycharm 里右击运行 spider_main.py,也提示错误了
文件目录结构如下:
GitHub 地址: https://github.com/magic3584/crawl_demo
1
cxbig 2017-06-30 14:48:07 +08:00 1
IDE 有自动环境选择,命令行你可能没有配好。
|
3
wlsnx 2017-06-30 14:56:07 +08:00 1
你在 crawl_demo 这一层目录,运行 python3 douban_spider/spider_main.py 试试
|
4
cxbig 2017-06-30 14:56:53 +08:00 1
@magic3584 右上角点击右键那个运行是独立于命令行的
先打开配置 > Project > Project Interpreter 看看你用的哪个 python 再去命令行看 which python3 确保都是一致的 然后回到 Project Interpreter 那里换不同 python 版本,用 绿箭头( Run )跑 |
5
xiahei 2017-06-30 14:58:21 +08:00 via Android 1
直接运行 spider_main.py 他就是最顶层的包 /模块 /文件,也就是 if __name__ == “__main__” 的原理,故不会再往上找。要改只需要在 douban_spider 同级目录下添加入口文件,把 douban_spider 作为包,导入你要运行的模块即可。
|
7
magic3584 OP @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 OP |
10
magic3584 OP @cxbig 我把两个改成一样了。直接在 spider_mian.py 上右击运行也跑不了。还是 module 的问题
|
11
xiahei 2017-06-30 15:24:58 +08:00 1
@magic3584 最简单的办法:
```shell $ cd crawl_demo $ mv douban_spider/spider_main.py . $ python3 spider_main.py ``` 建议去看看 Python 模块导入机制。 |
12
magic3584 OP @xiahei 要不你去 https://github.com/magic3584/crawl_demo clone 下来试试?我试了你说的方法,还是提示一样的错误。。。
|
15
xiahei 2017-06-30 15:37:26 +08:00 1
|
16
GoBeyond 2017-06-30 15:43:22 +08:00 via Android 1
简单看了一下,我先不分析你在 IDE 里为什么能跑这个,我搞不懂你在主入口头部 import 时还要加上`from douban_spider `这一句?想写模块?
解决方法就是把`from douban_spider`去掉,毕竟你主入口在那个目录里,你要是这么写的话解释器根本找不到那个模块。如果硬要写 from 的话,把那句改成`from . import html_downloader, html_parser, html_outputer`,这样解释器也会从当前目录里找对应模块 建议学习一下 py 的 import 路径问题。 |
17
magic3584 OP @xiahei 可以了。。。我还有一点疑问:
spider_main.py 的第一行 from douban_spider import html_downloader, html_parser, html_outputer 为什么会出现 4 个错误呢?但是不影响运行。。。而且手动输入的话也没有提示。不像导入 bs4 那样手动输入的时候会提示 |
19
magic3584 OP @GoBeyond 我看着教程里就这样写的。教程也是用 IDE 跑的。我想在终端里试试发现怎么都搞不好。。。按照您的指点改成 from .douban_spider import xxx 可以了。结构什么的还是不太懂,还得再看看。谢谢
|
22
xiahei 2017-06-30 15:51:59 +08:00
@magic3584 帮不了你,恕我愚钝,猜不透那 4 个错误是啥子错误,也不知道什么手动输入。北京有个龙泉寺,去看看,你先别告诉大师报的错,看大师能算出来你的代码报什么错误你给什么输入不。
|
23
Allianzcortex 2017-06-30 15:52:11 +08:00 via iPhone 1
|
24
magic3584 OP @xiahei
我的意思是出现这个错误 ![4]( http://oscknacsp.bkt.clouddn.com/4.png) 注释掉的话反而运行不了,但是手动敲代码的话也没有提示,不像导入 bs4 一样打了 from b 就会提示 bs4 |
25
zeny620 2017-07-01 11:38:36 +08:00 via Android
现在寺庙都有这业务了?!
|