您的位置:首页 > 运维架构 > Linux

Installing Python 2.7 on Centos 6.5

2018-02-15 15:36 459 查看
url: https://gist.github.com/dalegaspi/dec44117fa5e7597a559

Centos 6.* comes with Python 2.6, but we can't just replace it with v2.7 because it's used by the OS internally (apparently) so you will need to install v2.7 (or 3.x, for that matter) along with it. Fortunately, CentOS made this quite painless with their Software Collections Repository
sudo yum update # update yum
sudo yum install centos-release-scl # install SCL
sudo yum install python27 # install Python 2.7
To use it, you essentially spawn another shell (or script) while enabling the newer version of Python:
scl enable python27 bash
To install additional libraries, you will need to install PIP:
cd /opt/rh/python27/root/usr/bin/ # cd to the directory where SCL installs python
sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./easy_install-2.7 pip
once installed, you can install PIP using 
pip2.7
, e.g.:
sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./pip2.7 install requests
NOTE: if your username doesn't require root to install software, then 
LD_LIBRARY_PATH
 and 
PATH
 is set up for you automatically by 
scl
. Also keep in mind that using SCL outside a shell (e.g., cronjobs) isn't quite straightforward. Also, using 
virtualenv
 poses a challenge as well.


codeAshu commented on 20 Mar 2016

Did you miss 
yum install -y python27



crayzeewulf commented on 16 Jun 2016

As @codeAshu mentioned, I had to use slightly modified instructions to install Python 2.7. Please see the updated gist in this fork and the differences here. Feel free to merge it.


Owner

dalegaspi commented on 27 Jun 2016

i didn't see these messages (there should be notifications support for gists...) until i randomly wandered into this specific gist...thanks @crayzeewulf...i've merged your changes.


MarcGodard commented on 25 Mar 2017 • 

edited 
Getting 
error: Not a recognized archive type: pip
 on step 
sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./easy_install-2.7 pip
However, it is working so it looks like it is already there.


sonicwong commented on 19 Jun 2017

same here, got error in last step:
[root@server bin]# sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./easy_install-2.7 pip
/opt/rh/python27/root/usr/bin/python2: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory


cbsdtools commented on 14 Sep 2017

I received the same error as @sonicwong


alanthing commented on 19 Sep 2017

@cbsdtools and @sonicwong -- try this instead:Because the 
python27
 SCL comes via the 
centos-release-scl-rh
 package, you can install pip with: 
yum install python27-python-pip
.If it may be helpful to know more about how to use SCLs, here is how the command from @sonicwong would be run with all of the proper environment variables set:
scl enable python27 "easy_install-2.7 pip"
scl enable python27 cmd
 will effectively 
source
 the contents of 
/opt/rh/python27/enable
 before running the 
cmd
. If the command has arguments, you can wrap it in quotes.Alternatively, by running 
scl enable python27 bash
, you can jump into a new bash session with 
PATH
LD_LIBRARY_PATH
MANPATH
XDG_DATA_DIRS
, and 
PKG_CONFIG_PATH
 to run multiple consecutive commands without the 
scl enable
 prefixes .


JSoet commented on 2 Oct 2017 • 

edited 
When running pip I ran into a problem with permissions, it gave me this error any time I tried do any pip command:
$ ./pip2.7 -V
Traceback (most recent call last):
File "./pip2.7", line 7, in <module>
from pip import main
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/pip/__init__.py", line 21, in <module>
from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ImportError: No module named requests.packages.urllib3.exceptions
I found out that this was due to permissions problems on the lib folders. To fix it I had to add the read and execute permissions to the python lib and lib64 folders like:
sudo chmod -R o+rx /opt/rh/python27/root/usr/lib/python2.7/site-packages

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: