首页 文章

美丽的汤4导入错误?安装错误?

提问于
浏览
3

背景:

  • 我在Mac OSX上,10.8.5

  • python -V 说我跑2.7.2

  • pip freeze 说我安装了beautifulsoup4 == 4.3.2 .

根据本教程,我正在尝试使用Beautiful Soup 4来抓取网页:http://www.pythonforbeginners.com/python-on-the-web/web-scraping-with-beautifulsoup/

我按照笔记本电脑上的说明操作,一切按预期工作 . 所以我成功完成了一次 .

但这不是一个工作项目,所以我在我的个人笔记本电脑上再试一次 . 相同的脚本,但在我的个人笔记本电脑上(以及我妻子配置相同的笔记本电脑)这里发生了什么:

Melissas-MacBook:scripts Melissa$ ./spider2.py 
from: can't read /var/mail/bs4
./spider2.py: line 3: import: command not found
./spider2.py: line 4: import: command not found
./spider2.py: line 6: syntax error near unexpected token `('
./spider2.py: line 6: `for i in range(1,10): '

这是我的脚本:

from bs4 import BeautifulSoup

import requests
import time

for i in range(1,10): 
    url = "http://memegenerator.net/Futurama-Fry/images/popular/alltime/page/%d" % (i)
    r = requests.get(url)
    data = r.text
    soup = BeautifulSoup(data)
    results = ""
    for link in soup.find_all('img'):
        print(link.get('alt'))

我尝试通过pip卸载,并使用easy_install重新安装 . 同样,安装似乎工作(根据pip冻结)但脚本再次抛出相同的错误 .

该错误确实说,“无法读取/ var / mail / bs4” . 为什么期望在那里找到bs4?我用“ls”确认/ var / mail /确实是空的 . 只是变得绝望,我尝试了“sudo find / -atime 1 | grep bs4”但是没有透露任何有趣的东西(甚至bs4的位置,就此而言) .

是错误说python不明白导入命令是什么?如果是这样,那会怎么样?导入不标准,是否依赖某些库?

我错过了什么?我应该在哪里看下一个?这是一个简单的答案吗? (通常是,但我只是看不到它 . )我是python的相对新手,并且热切但不太了解bash . 也是我第一次发布stackoverflow问题,所以提前感谢任何建议/帮助 .

2 回答

  • 3

    脚本应该执行为 -

    python spider2.py
    

    代替 -

    ./spider2.py
    
  • 4

    为了能够使用 ./spider2.py 直接从终端执行脚本,您必须在脚本的最开始使用所谓的shebang line为其指定解释器 . 对于Python,那将是:

    #!/usr/bin/env python
    
    from bs4 import BeautifulSoup
    # ...
    

    如果没有指定解释器,脚本将使用终端解释器执行,在这种情况下可能是 bash ,当然这不能运行Python代码 .

    当然,该文件也必须标记为可执行文件 .

    或者您可以使用Python解释器执行脚本,而不需要像@theharshest所推荐的shebang行:

    python spider2.py
    

    我自己更喜欢后一种选择 .

相关问题