在OSX系统中用Python 2.7安装Scrapy遇错,求解决方案
解决Scrapy安装失败(Python2.7 + pip9.0.3)的方案
嘿,看起来你是在Mac系统自带的Python2.7环境下安装Scrapy时碰到了依赖包冲突的问题——终端里的"Found existing install..."提示就是说系统路径下已经有部分依赖包存在,pip没法直接处理它们。结合你的环境情况,给你几个实用的解决办法:
方法1:强制忽略现有依赖包安装
如果只是因为已有包的存在导致安装卡壳,可以试试让pip跳过这些已安装的依赖,重新安装适配Scrapy的版本:
pip install Scrapy --ignore-installed six w3lib cssselect lxml parsel queuelib PyDispatcher attrs pyasn1 pyasn1-modules service-identity hyperlink constantly incremental Automat Twisted
⚠️ 注意:这个操作会替换掉系统路径里的这些包,如果有其他系统工具依赖这些包的特定版本,可能会出问题,所以优先推荐下面的虚拟环境方案。
方法2:用虚拟环境隔离依赖(最稳妥)
系统自带的Python环境很容易因为全局包版本混乱出问题,最安全的做法是创建一个独立的虚拟环境来装Scrapy:
- 先装virtualenv(如果还没装的话):
sudo pip install virtualenv
- 创建一个虚拟环境目录(比如叫
scrapy_env,放你喜欢的位置就行):
virtualenv ~/scrapy_env
- 激活这个虚拟环境:
source ~/scrapy_env/bin/activate
激活后终端前面会出现(scrapy_env)的标识,说明你已经进入隔离环境了。
- 现在直接安装Scrapy,完全不会和系统全局包冲突:
pip install Scrapy
之后每次用Scrapy的时候,先激活这个虚拟环境就好。
方法3:安装到用户私有目录
要是不想折腾虚拟环境,可以把Scrapy装到当前用户的私有Python路径,避开系统权限问题:
pip install Scrapy --user
装完之后,得确保用户的Python脚本路径(一般是~/Library/Python/2.7/bin)在系统PATH里,不然没法直接用scrapy命令。可以把这个路径加到你的~/.bash_profile或者~/.zshrc里:
echo 'export PATH="$HOME/Library/Python/2.7/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile
最后提一句:Python2.7已经停止维护好几年了,很多新库都不再支持它,要是条件允许的话,建议升级到Python3.x版本,后续用Scrapy会少很多兼容性麻烦~
内容的提问来源于stack exchange,提问作者Jayanta Baishya
相关产品推荐
相关产品推荐

