害我折腾了半天,##ck!
问题出在cryptography模块的安装上,我们来看错误信息
Running setup.py (path:/tmp/pip_build_root/cryptography/setup.py) egg_info for package cryptography
error in cryptography setup command: Invalid environment marker: python_version < '3'
Complete output from command python setup.py egg_info:
error in cryptography setup command: Invalid environment marker: python_version < '3'
系统默认自带的python版本是2.7.6,但是官网上明明写的支持2.*啊,截图为证,
cryptography2.1.4
然后网上搜索到的答案大部分都是scrapy官网上说明的,我已经照做了,然后就是升级setuptools,也升了,然而并没有卵用。后面没办法,你说啥就啥吧,然后把python版本切换到3.4,切换方法如下
如果有的话就不用安装了,没有就安装一下,现在我们要做的是把系统默认的python切换到3.4,2.*卸不掉,控制台按照如下方法
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.4 /usr/bin/python
这样python就是3.4了,使用3.4之后得安装pip3
apt-get install pip3
然后再试着安装scrapy,还是报错,而且这次的错误变成了这样
Downloading/unpacking cryptography
http://mirrors.aliyun.com/pypi/simple/cryptography/ uses an insecure transport scheme (http). Consider using https if mirrors.aliyun.com has it available
Downloading cryptography-2.1.4.tar.gz (441kB): 441kB downloaded
Running setup.py (path:/tmp/pip_build_root/cryptography/setup.py) egg_info for package cryptography
error in cryptography setup command: Invalid environment marker: platform_python_implementation != 'PyPy'
Complete output from command python setup.py egg_info:
error in cryptography setup command: Invalid environment marker: platform_python_implementation != 'PyPy'
这模块有哥单词“cry”还真是让人要cry啊!最后重新更新一下setuptools
pip3 install --upgrade setuptools
然后再
pip3 install scrapy居然鬼使神差的成功了!
补充:
换成python3是可以成功安装了,但问题又来了,python3不支持MySQLdb,网上搜到用pymysql,但是我的项目已经写好都是用的mysqldb,而且py3还是比较吭的,所以不甘心,重新换回2.7。
解决办法:
cd /usr/local/lib/python2.7/dist-packages进入目录
rm -rf setuptools*文件全部删除
然后控制台输入
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
千万不要直接用
pip install setuptools
这样安装的是setuptools38,最新版,而这个版本是不支持2.x的,如果你安装了这个,你下面运行的任何pip install ....都会报一个ImportError: No module named extern的错误。
总结:
- 任何时候都以官方文档为基础,使用任何技术都应该先看官方文档
- 找答案时能翻墙就不用baidu,实在不行去stackoverflow上直接搜索,大多数情况下都能找到有效的答案