【问题标题】:How to install portia, a python application from Github (Mac)如何安装来自 Github (Mac) 的 python 应用程序 portia
【发布时间】:2014-05-04 05:48:44
【问题描述】:

我正在尝试安装来自 Github 的 Python 应用程序 Portia:https://github.com/scrapinghub/portia

我在命令行使用以下步骤:

  1. 在 Mac 终端中设置新的 virtualenv 'portia'
  2. git 克隆https://github.com/scrapinghub/portia.git
  3. 按照自述文件的说明进行操作:

    cd slyd

    pip install -r requirements.txt

  4. 运行波西亚

    cd slyd

    twistd -n slyd

但每次我尝试运行程序的最后一步时,都会收到以下错误:

ImportError: No module named scrapy

知道为什么会发生此错误吗?所有前面的步骤似乎都正确安装。这是我安装过程早期的错误吗?

谢谢!

【问题讨论】:

  • pip install -r requirements.txt 工作正常吗? scrapy 列在那里,所以应该已经安装了。 python -c "import scrapy" 是否显示任何错误?
  • 是的,pip install -r requirements.txt 安装正确。是的,python -c "import scrapy" 显示错误:ImportError: No module named scrapy
  • pip list 显示什么? (确保在激活 virtualenv 的情况下运行它。)

标签: python git github web-scraping scrapy


【解决方案1】:

我没有代表支持 Alagappan 的答案,但他是正确的。另外,如果您像我一样缺乏经验,您可能需要进一步澄清这一点。

在安装任何东西(包括从 github 克隆 portia)之前,您必须创建、激活并导航到 virtualenv。这是从头到尾的整个过程:

1: cd 到您想要存储项目的任何位置... 和 安装 virtualenv

$ pip install virtualenv

2:创建虚拟环境。 (我称我的“portia”,但它可以是任何东西。)

$ virtualenv portia

3:激活您创建的虚拟环境 (如果不是“portia”,请更改路径以反映您在此处使用的名称。)

$ source portia/bin/activate

此时,您的终端应该在标准目录路径提示之前的括号中显示 virtualenv 名称: (name-of-virtualenv) [your-machine]:[current-directory]: [user]$ ...如果您在 pwd 中列出文件,您将在那里看到您的 virtualenv 的名称。

4:cd 进入你的 virtualenv(对我来说是“portia”):

$ cd portia

5:现在您可以将 portia 从 github 克隆到您的 virtualenv...

$ git clone https://github.com/scrapinghub/portia

6: cd 进入克隆的 portia/slyd...

$ cd portia/slyd

7/8:pip install twisted 和 Scrapy...

$ pip install twisted
$ pip install Scrapy

你的 virtualenv 应该仍然被激活并且你应该仍然在 [virtualenv-name]/portia/slyd

9:安装 requirements.txt:

$ pip install -r requirements.txt

10:运行 slyd:

$ twistd -n slyd

---没有更多的scrapy错误! ---

【讨论】:

  • 这比portia's readme 下的当前指令更早,它可以正常工作!您应该自己更新该自述文件。 ;-)
  • (down4keeps,我建议您将其添加到您的答案中!)如果您需要再次运行它,在使用上述步骤“安装”它之后,尝试创建这个简单的 shell 脚本:@987654332 @cd [your folder]virtualenv portiasource portia/bin/activatecd portia/portia/slydtwistd -n slyd
【解决方案2】:

Portia 的另一种安装方法:使用 Vagrant

这是让我轻松安装 Portia 的方法。适用于 Mac、Windows 和 Linux。只需几个命令和点击,您将获得一个功能齐全的网络爬虫。

需要的东西:

  1. VirtualBox
  2. Vagrant
  3. 克隆 Portia 的存储库或下载 zip 文件。

要采取的其他步骤:

  1. 安装VirtualBox
  2. 安装Vagrant
  3. 打开您的终端并导航到您克隆 Portia 存储库的位置或提取它的位置(如果是 zip 文件)。

  4. 然后发出命令vagrant up - 这将为您下载并设置一个 VirtualBox Guest VM + 将安装 Portia 的所有必要要求,并将从头到尾安装 Portia。

完成上述过程后,您现在可以打开浏览器并导航到

http://the-virtualbox-ip:8000/static/main.html

你已经设置好了。

【讨论】:

    【解决方案3】:

    很简单,你只需要安装python模块scrapy,就像Twitter API需要setuptools一样

    pip install scrapy
    

    【讨论】:

    • 谢谢 - 我也试过了。即使在确保已安装之后仍然出现错误No module named scrapy
    【解决方案4】:

    我想您面临的问题是由于 virtualenv。设置新的虚拟环境后,您需要运行激活脚本才能开始使用它。在您的情况下,您必须运行以下命令:

    $ source portia/bin/activate
    

    成功激活后,您的提示将如下所示:

    (portia) $
    

    您能否在使用 pip 安装软件包之前检查您是否激活了虚拟环境?我相信这样做会解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 2021-03-03
      • 2011-05-22
      • 2018-09-06
      • 2011-12-17
      相关资源
      最近更新 更多