LoginSignup
14

More than 5 years have passed since last update.

Python2.6→2.7へアップデートするにあたってやったこと

Last updated at Posted at 2014-05-16

はてなにメモってた過去記事を再掲シリーズ(ちょっと古いかもしれない)

インストールに必要なものをインストール

$ sudo yum install zlib zlib-devel tk-devel tcl-devel sqlite-devel ncurses-devel gdbm-devel readline-devel bzip2-devel db4-devel openssl-devel

Pythonをダウンロードして解凍する

$ wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz
$ tar zxvf Python-2.7.2.tgz

インストール

$ cd Python-2.7.2
$ ./configure --with-threads --enable-shared

エラー対策(x86_64の場合)ここで,実行すると

python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

とエラーで動かない.コンパイルはされているので,シンボリックを貼る.

$ ln -s /usr/local/lib/libpython2.7.so.1.0 /lib64/

@CentOS

Python2.7のinstall

http://wasure-memo.h-tsk.com/2012/03/centos-62-python-272.html
http://memo.yomukaku.net/entries/jbRkQkq

wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgztar zxvf Python-2.7.2.tgz
sudo yum install zlib zlib-devel tk-devel tcl-devel sqlite-devel ncurses-devel gdbm-devel readline-devel bzip2-devel db4-devel openssl-devel
cd Python-2.7.2
./configure --with-threads --enable-shared
make
sudo make install
python2.7

pipのinstall

wget http://peak.telecommunity.com/dist/ez_setup.py
sudo /usr/local/bin/easy_install-2.7 pip

$ sudo /usr/local/bin/pip-2.7 install jubatus

$ sudo /usr/local/bin/pip-2.7 install MySQL-python

エラー1:ここでmysql_configがないって怒られた

$ sudo yum install MySQL-devel.x86_64
$ which mysql_config

エラー2:インストールできない

解決策

(無理矢理だけど)

$ sudo cp -rp /usr/lib64/python2.6/site-packages/_mysql* /usr/local/lib/python2.7/site-packages
$ sudo cp -rp /usr/lib64/python2.6/site-packages/MySQL* /usr/local/lib/python2.7/site-packages

一応できた…

ちなみにエラー2のエラーログは

$ sudo /usr/local/bin/pip install MySQL-python
Downloading/unpacking MySQL-python
  Running setup.py egg_info for package MySQL-python

Installing collected packages: MySQL-python
  Running setup.py install for MySQL-python
    building '_mysql' extension
    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'final',1) -D__version__=1.2.4 -I/usr/include/mysql -I/usr/local/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -fPIC -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1
    _mysql.c:44 から include されたファイル中:
    /usr/include/mysql/my_config.h:422:1: 警告: "HAVE_WCSCOLL" が再定義されました
    /usr/local/include/python2.7/Python.h:8 から include されたファイル中,
                     _mysql.c:29 から:
    /usr/local/include/python2.7/pyconfig.h:887:1: 警告: ここが以前の宣言がある位置です
    gcc -pthread -shared build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib64 -L/usr/local/lib -lmysqlclient_r -lpthread -lm -lrt -ldl -lpython2.7 -o build/lib.linux-x86_64-2.7/_mysql.so
    /usr/bin/ld: cannot find -lmysqlclient_r
    collect2: ld はステータス 1 で終了しました
    error: command 'gcc' failed with exit status 1
    Complete output from command /usr/local/bin/python2.7 -c "import setuptools;__file__='/tmp/pip-build-root/MySQL-python/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Q9RYLv-record/install-record.txt --single-version-externally-managed:
    running install

running build

running build_py

copying _mysql_exceptions.py -> build/lib.linux-x86_64-2.7

copying MySQLdb/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/converters.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/connections.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/cursors.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/release.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/times.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

running build_ext

building '_mysql' extension

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'final',1) -D__version__=1.2.4 -I/usr/include/mysql -I/usr/local/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -fPIC -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1

_mysql.c:44 から include されたファイル中:

/usr/include/mysql/my_config.h:422:1: 警告: "HAVE_WCSCOLL" が再定義されました

/usr/local/include/python2.7/Python.h:8 から include されたファイル中,

                 _mysql.c:29 から:

/usr/local/include/python2.7/pyconfig.h:887:1: 警告: ここが以前の宣言がある位置です

gcc -pthread -shared build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib64 -L/usr/local/lib -lmysqlclient_r -lpthread -lm -lrt -ldl -lpython2.7 -o build/lib.linux-x86_64-2.7/_mysql.so

/usr/bin/ld: cannot find -lmysqlclient_r

collect2: ld はステータス 1 で終了しました

error: command 'gcc' failed with exit status 1

----------------------------------------
Command /usr/local/bin/python2.7 -c "import setuptools;__file__='/tmp/pip-build-root/MySQL-python/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Q9RYLv-record/install-record.txt --single-version-externally-managed failed with error code 1 in /tmp/pip-build-root/MySQL-python

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14