CentOS7-Python系列】之一【python-devel教訓】

一、一些Python包安裝html

[root@v6i6v ~]# pip install virtualenv
[root@v6i6v v6i6v]# pwd
/home/v6i6v
使用虛擬環境,注意在新建虛擬環境時,能夠選擇是否使虛擬環境讀取系統python的包。node

若不讀取系統python的包則以下:python

[root@v6i6v v6i6v]# virtualenv venv-django --no-site-packages
New python executable in /home/v6i6v/venv-django/bin/python
Installing setuptools, pip, wheel...done.
linux

若讀取系統python的包則以下:
nginx

[root@v6i6v v6i6v]# virtualenv venv-django
New python executable in /home/v6i6v/venv-django/bin/python
Installing setuptools, pip, wheel...done.
虛擬環境的幾個命令:django

激活:source venv-django/bin/activate
停用:deactivatecentos

二、Django安裝python2.7

激活虛擬環境並安裝djangossh

[root@v6i6v v6i6v]# source venv-django/bin/activate
(venv-django) [root@v6i6v v6i6v]# pip install djangocurl


三、蛋疼的事,真折騰唉

沒去查python2.7.11需不須要安裝python-devel。反正去安裝的話,蛋疼的屁事一堆,以下:

安裝python-devel報錯

[root@v6i6v]# yum install python-devel

Traceback (most recent call last):
  File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
    from urlgrabber.grabber import \
ImportError: No module named urlgrabber.grabber
解決辦法:

把系統自帶python種的urlgrabber文件夾複製到新安裝的site-packages目錄下

[root@v6i6v]# cp -rf  /usr/lib/python2.7/site-packages/urlgrabber /opt/python27/lib/python2.7/site-packages/

再次執行:

[root@v6i6v]# yum install python-devel

繼續報錯:

Traceback (most recent call last):
  File "/usr/libexec/urlgrabber-ext-down", line 22, in <module>
    from urlgrabber.grabber import \
  File "/opt/python27/lib/python2.7/site-packages/urlgrabber/__init__.py", line 55, in <module>
    from grabber import urlgrab, urlopen, urlread
  File "/opt/python27/lib/python2.7/site-packages/urlgrabber/grabber.py", line 512, in <module>
    import pycurl
ImportError: No module named pycurl
百度尋找解決方案以下

(1)yum install python-devel.x86_64。未解決

[root@v6i6v ~]# yum search python | grep -i python-devel

(2)安裝libcurl-devel。無效

[root@v6i6v ~]# yum install -y libcurl4-openssl-dev

[root@v6i6v ~]# yum install libcurl-devel
(3)手動下載curl,pycurl,並指定路徑安裝pycurl

下載curl:https://curl.haxx.se/download.html

下載pycurl:https://pypi.python.org/pypi/pycurl/

安裝過程:解壓安裝

[root@v6i6v ~]# tar -zxvf curl-7.48.0.tar.gz

[root@v6i6v ~]# tar -zxvf pycurl-7.43.0.tar.gz

[root@v6i6v ~]# cd curl-7.48.0

[root@v6i6v ~]# ./configure --prefix=/opt/curl

[root@v6i6v curl-7.48.0]# make && make install

[root@v6i6v curl-7.48.0]# cd ..
[root@v6i6v download]# cd pycurl-7.43.0
[root@v6i6v pycurl-7.43.0]# python setup.py install --curl-config=/opt/curl/bin/curl-config
ok終於搞定pycurl了。

[root@v6i6v download]# yum install python-devel
報錯:

ImportError: pycurl: libcurl link-time version (7.29.0) is older than compile-time version (7.48.0)
升級libcurl:

[root@v6i6v download]# yum update libcurl
提示No packages marked for update

檢查curl,libcurl,pycurl版本

[root@v6i6v download]# rpm -q curl
curl-7.29.0-25.el7.centos.x86_64
[root@v6i6v download]# rpm -q libcurl
libcurl-7.29.0-25.el7.centos.x86_64
[root@v6i6v download]# pip list
pip (8.1.1)
pycurl (7.43.0)
setuptools (20.9.0)
virtualenv (15.0.1)
wheel (0.29.0)
發現以前已經手動編譯安裝curl7.48.0到/opt/curl目錄

修改指向現有curl的軟鏈接爲新安裝的curl位置

首先備份原有curl軟鏈接:

[root@v6i6v download]# mv /usr/bin/curl /usr/bin/curl7.29

新建軟鏈接:

[root@v6i6v download]# ln -fs /opt/curl/bin/curl /usr/bin/curl

下載city-fan.org-release-1-13.devel.noarch.rpm地址:http://www.city-fan.org/ftp/contrib/yum-repo/

[root@v6i6v download]# rpm --nodeps -ivh city-fan.org-release-1-13.devel.noarch.rpm

[root@v6i6v download]# yum reinstall libcurl
仍是不行,扯累了,去降級pycurl到7.29試試。

首先還原以前curl的軟鏈接:

[root@v6i6v download]# rm -rf /usr/bin/curl
[root@v6i6v download]# mv /usr/bin/curl7.29 /usr/bin/curl

卸載pycurl,下載編譯安裝7.29:

[root@v6i6v download]# pip uninstall pycurl

折騰一輪後,好像不是pycurl問題。

仍是從新編譯安裝curl和pycurl吧。安裝curl時設置prefix了。

[root@v6i6v download]# rm -rf /opt/curl/
參照上面的編譯安裝方式,從新安裝一次。

而後.....................................仍是報錯。

下載了libcurl7.23.rpm安裝後

rpm -ivh libcurl4-7.23.0-1.i386.rpm --nodeps --force
rpm -ivh libcurl4-devel-7.23.0-1.i386.rpm --nodeps --force

運行安裝python-devel也不行。。。

好坑啊。。。。。。

由於跳過依賴強制安裝。。。。。。。。。。。

心中一萬頭草泥馬飛過........................................................................................................................................................

要哭了,大神在哪裏.......................................

從新安裝centos系統,無論python-devel了。搞的如今yum都不能正常使用了





1:linux下源碼編譯
./configure --prefix=/usr/local/curl --disable-shared --enable-static --without-libidn --without-ssl --without-librtmp --without-gnutls --without-nss --without-libssh2 --without-zlib --without-winidn --disable-rtsp --disable-ldap --disable-ldaps --disable-ipv6

注意:不須要其它功能就disable,否則會在鏈接時報錯, 若是你沒有disable掉,但你的機器上又沒有安裝相應的庫,link時會報錯。




















# python2.7.11 settings
PYTHON_HOME=/opt/python27
# curl7.48.0 settings
CURL_HOME=/opt/curl

PATH=$PATH:$PYTHON_HOME/bin:$CURL_HOME/bin
export PYTHON_HOME CURL_HOME PATH





一、Nginx環境搭建

yum install python-devel nginx

相關文章
相關標籤/搜索