如何在Mac上安装来自Github的Python应用Portia
我正在尝试从Github安装一个叫Portia的Python应用:https://github.com/scrapinghub/portia
我在命令行中按照以下步骤操作:
- 在Mac终端中设置一个新的虚拟环境,命名为'portia'
- 使用git克隆这个项目:https://github.com/scrapinghub/portia.git
按照说明文件里的指示操作:
cd slyd
pip install -r requirements.txt
运行Portia
cd slyd
twistd -n slyd
但是每次我尝试最后一步来运行程序时,都会出现以下错误:
ImportError: No module named scrapy
你知道为什么会出现这个错误吗?之前的步骤看起来都安装得很顺利。是不是我在安装过程中哪里出错了?
谢谢!
4 个回答
我想你遇到的问题可能是因为虚拟环境。创建一个新的虚拟环境后,你需要运行一个激活脚本才能开始使用它。在你的情况下,你需要运行以下命令:
$ source portia/bin/activate
成功激活后,你的命令行提示符会变成这样:
(portia) $
你能检查一下在用pip安装软件包之前是否激活了你的虚拟环境吗?我觉得这样做会解决你的问题。
这很简单,你只需要像安装Twitter API所需的setuptools
一样,安装Python模块scrapy
就可以了。
pip install scrapy
另一种安装Portia的方法:使用Vagrant
这里有一个让我轻松安装Portia的方法。它适用于Mac、Windows和Linux。只需几个命令和点击,你就能得到一个功能齐全的网页抓取工具。
需要准备的东西:
- VirtualBox
- Vagrant
- 克隆
Portia
的代码库,或者下载压缩文件。
额外的步骤:
- 安装
VirtualBox
。 - 安装
Vagrant
。 打开你的终端,进入你克隆的
Portia
代码库所在的文件夹,或者进入你解压缩后的文件夹(如果是压缩文件的话)。然后输入命令
vagrant up
- 这个命令会为你下载并设置一个VirtualBox的虚拟机,同时会安装Portia所需的所有必要组件,并从头到尾安装Portia。
完成以上步骤后,你可以打开浏览器,访问
http://the-virtualbox-ip:8000/static/main.html
这样就设置好了。
我没有足够的积分来给Alagappan的回答点赞,但他说得没错。如果你和我一样经验不足,可能需要更清楚的解释。
在安装任何东西之前(包括从github克隆portia),你需要先创建、激活并进入虚拟环境。下面是从头到尾的完整步骤:
1: cd 到你想存放项目的地方... 然后 安装virtualenv:
$ pip install virtualenv
2: 创建虚拟环境。 (我把它叫做“portia”,但你可以随便起个名字。):
$ virtualenv portia
3: 激活你创建的虚拟环境 (如果你不是用“portia”这个名字,请把路径改成你用的名字。):
$ source portia/bin/activate
此时你的终端应该在标准目录路径提示符前显示虚拟环境的名字,像这样:
(name-of-virtualenv) [你的机器]:[当前目录]: [用户]$
...如果你列出当前目录的文件,你会看到你的虚拟环境名字在里面。
4: cd进入你的虚拟环境(对我来说是“portia”):
$ cd portia
5: 现在你可以从github克隆portia到你的虚拟环境里了...
$ git clone https://github.com/scrapinghub/portia
6: cd进入克隆下来的portia/slyd...
$ cd portia/slyd
7/8: pip安装twisted和Scrapy...
$ pip install twisted
$ pip install Scrapy
你的虚拟环境应该仍然是激活状态,并且你应该还在[虚拟环境名字]/portia/slyd里。
9: 安装requirements.txt:
$ pip install -r requirements.txt
10: 运行slyd:
$ twistd -n slyd
--- 不再出现scrapy错误! ---