其实这个环境我已经搞了两个礼拜了。两周前,我接到这个project,完成一个python写的基于spark分布式平台的音乐推荐系统。我以前听过python,这一次无意间看到了一句话“life is short,you need python”。我下定决心一定要好好地学习python。
首先本次project由于需要python的开发环境必须要他的版本>2.7.3,而我使用的是centos操作系统,其自带的python版本是2.6.0,没办法达到要求。所以我做的第一件事情,就是对python的版本进行升级。
1.python版本的升级:
1)下载Python-2.7.3
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
2)解压
tar -jxvf Python-2.7.3.tar.bz2
3)需要提前安装好ssl
4)开启ssl
vim Python-2.7.3/Modules/Setup.dist
找到SSL相关部分去掉注释就行
#修改变动如下:
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:#SSL=/usr/local/ssl
_ssl _ssl.c \-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
5)安装Python:
./configure
make all
make install
make clean
make distclean
6)查看刚刚安装得Python版本:
/usr/local/bin/python2.7 -V
7)将系统默认的python指向到2.7版本
mv /usr/bin/python /usr/bin/python2.6.0
ln -s /usr/local/bin/python2.7 /usr/bin/python
然后通过python -V查看就会显示为2.7.3了。
2.由于该project需要使用到python中的三个库,numpy,scipy和recsys。
这里对这三个库做一个简单的介绍:
numpy:一个用python实现的科学计算包。包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。
scipy:是一款方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等.
recsys:其提供一些算法的矩阵运算(详细了解请见http://ocelma.net/software/python-recsys/build/html/index.html)
sudo apt-get install python-scipy python-numpy sudo apt-get install python-pip sudo pip install csc-pysparse networkx divisi2 # If you don‘t have pip installed # (i.e. the last command, sudo pip install, fails) # then do: # sudo easy_install csc-pysparse # sudo easy_install networkx # sudo easy_install divisi2然后将python——recsys下载下来(github链接:https://github.com/ocelma/python-recsys)
tar xvfz python-recsys.tar.gz cd python-recsys sudo python setup.py install至此,我这个基于spark的python开发环境就此完成了.
原文:http://blog.csdn.net/jim_cainiaoxiaolang/article/details/51367839