在安装scrapy的过程中遇到了一些问题记录一下。安装这个确实挺多人遇到了问题的,虽然大家遇到的问题可能不同,但大部分可能都是缺少某些包
进入命令行,执行:
pip install scrapy
但是执行到最后的时候报错如下:
于是安装xcode-select
执行:
xcode-select --install
然后安装libxml2:
brew install --with-python libxml2
但是执行完毕又报错:
执行:
echo /usr/local/opt/libxml2/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/libxml2.pth
却提示:
zsh: no such file or directory: /usr/local/lib/python2.7/site-packages/libxml2.pth
好吧,没有就新建一个吧,于是新建一个文件再次执行:
zsh: permission denied: /usr/local/lib/python2.7/site-packages/libxml2.pth
还是不行啊,没有libxml2就安装不了scrapy呀,一般安装错误有可能就是缺少了某些包,直接下载吧:
wget ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz//下载
tar -zxvf libxml2-git-snapshot.tar.gz//解压
cd libxml2-2.9.2/
/configure
下载,解压,安装……好险,终于没有又报什么错误了。
这个时候再安装scrapy:
pip install scrapy
提示:
Installing collected packages: scrapy
Successfully installed scrapy-1.0.6
安装成功。
执行scrapy提示:
zsh: command not found: scrapy
不对呀,成功安装了scrapy为什么说not found呢?
最后终于找到问题,执行:
ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/scrapy /usr/local/bin/scrapy
呼~终于好了。问题在于我调用的不是系统的python,比如执行which python,路径显示:
/usr/local/bin/python
如果是系统自带的python应该显示:
/usr/bin/python
所以需要执行上面的ln -s
命令,
那么这个命令是什么意思呢?Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。
ln source dist是产生一个连结(dist)到source,至于使用硬连结或软链结则由参数决定。
不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
参数格式 :
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
ln是linux中一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。
范例 :
将档案yy产生一个symbolic link : zz
ln -s yy zz
将档案yy产生一个hard link : zz
ln yy xx
linux通过链接文件能共享几乎所有类型的文件。
再有一个问题就是执行:
sudo pip install scrapy
的时候,会收到这样的提示:
google出stackoverflow上一个回答解释了这个问题:
就是添加一个-H参数。
那么添加这个参数是什么意思呢?sudo还有哪些参数呢?这就要让我们来看看sudo这个命令了。
语法:
sudo(选项)(参数)
选项:
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
推荐一个linux系统命令查询的网站:
http://man.linuxde.net/
有兴趣的可以参考这些文档:
http://www.cnblogs.com/rwxwsblog/p/4557123.html?utm_source=tuicool&utm_medium=referral 这个楼主安装的时候也是遇到了很多问题。