pipでpsycopg2をインストールするとエラーになる













こんにちは,ちゆりです。

データベースをMySQLからPostgreSQLに移行した際にPythonモジュールの「psycopg2」が必要になったのでpipでインストールを行った。

$ sudo pip install psycopg2

すると,ターミナルが真っ赤になるほどのエラーが表示された。

1つ1つ状況を切り分けエラー解決できたのでみなさんに共有していこうと思う。

1.パッケージ不足か?

以下の記事より,パッケージ不足が原因という説が…

https://qiita.com/makaaso/items/989a48c4d58ae1030e9d

$ sudo apt-get install -y python3-dev
$ sudo apt-get install -y libpq-dev

それでも,状況は変わらず。エラーは解消されない。

2.gccコンパイラが足りていない?

よくよくエラー内容を見てみると「gccがなんちゃら」って書いてある。

gccコンパイラが足りていない説が…

てことで,Xcodeをインストールしてみる。

xcode-select --install

Xcodeがコンパイルするためにgccコンパイラを使うのでXcodeを導入することで,gccを取得できるというわけ(正式にはgccではなくclangを使っているみたい。細かいことは今回は気にしない)。

これで,解決するか?と思ったが相変わらず解決せず。。

というのも僕のMacには既にXcodeは入っている。

3.Pythonを全消して入れ直す。

psycopg2を使うために必要なpostgresqlはHomebrewでインストールしている。そしてPython公式サイトよりインストールしており,内部のパスがうまく噛み合っていないという説もあり…

ということで,

Pythonを一旦削除し,Homebrewでインストールをし直す。

postgresqlPythonをHomebrewの管轄内で管理することにする。

 

Pythonをアンインストールする

$ which python
--> /usr/bin/python
$ rm -rf /usr/bin/python

pyenvでインストールした場合は
$ which pyenv
--> /../../pyenv (pyenvへのパス)
$ rm -rf /../../pyenv

アプリケーション直下のpythonの削除
$ cd /Application
$ sudo rm -rf python*

 

python.Frameworkの削除

$ sudo rm -rf  /Library/Frameworks/Python.framework

 

Python関連のシンボリックリンクもすべて削除

$ ls -l /usr/local/bin | grep Python

ズラズラとPython関連のシンボリックリンクが出てきます。

$ unlink /usr/local/bin/2to3
$ unlink /usr/local/bin/2to3-3.5
$ unlink /usr/local/bin/2to3-3.6
$ unlink /usr/local/bin/easy_install-3.5
$ unlink /usr/local/bin/easy_install-3.6
$ unlink /usr/local/bin/idle3
$ unlink /usr/local/bin/idle3.5
$ unlink /usr/local/bin/idle3.6
$ unlink /usr/local/bin/pip3
$ unlink /usr/local/bin/pip3.5
$ unlink /usr/local/bin/pip3.6
$ unlink /usr/local/bin/pydoc3
$ unlink /usr/local/bin/pydoc3.5
$ unlink /usr/local/bin/pydoc3.6
$ unlink /usr/local/bin/python3
$ unlink /usr/local/bin/python3-32
$ unlink /usr/local/bin/python3-config
$ unlink /usr/local/bin/python3.5
$ unlink /usr/local/bin/python3.5-32
$ unlink /usr/local/bin/python3.5-config
$ unlink /usr/local/bin/python3.5m
$ unlink /usr/local/bin/python3.5m-config
$ unlink /usr/local/bin/python3.6
$ unlink /usr/local/bin/python3.6-32
$ unlink /usr/local/bin/python3.6-config
$ unlink /usr/local/bin/python3.6m
$ unlink /usr/local/bin/python3.6m-config
$ unlink /usr/local/bin/pyvenv
$ unlink /usr/local/bin/pyvenv-3.5
$ unlink /usr/local/bin/pyvenv-3.6

リンク削除した後,もう一度

$ ls -l /usr/local/bin | grep Python

シンボリックリンクが全て消えていれば完了です。

 

PATHを削除しておく

$ vi ~/.bash_profile
-->PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}"
   PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
   PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
↑これらのPATHを削除します。

$ source ~/.bash_profile

以上でPythonのアンインストール完了です。

 

PythonをHomebrewでインストール。

brewコマンドでインストールしていきます。

$ brew install python

この1コマンドでインストール完了です。

インストール確認

$ brew list
fish		heroku		icu4c		openssl		postgresql	readline	xz
gdbm		heroku-node	mysql		pcre2		python		sqlite

postgresqlpythonがbrew直下にあれば,おそらくOK

これでおそらく解決??

さぁ,ようやくスタートラインへ戻ってきました。

pip install psycopg2
やったー!!無事にインストールできました!!!

それでもうまくいかないときは,

pipがうまくpython3と紐付いていない可能性が…

pip3 install psycopg2

これで,おそらく導入できそうです。

 

ありがとう

★人気の記事一覧

合法的に女の子に精液の匂いを嗅がせる方法

【精子を食べる!?】食ザーが理にかなっているというお話

[Froala Design Blocks ]無料でオシャレなサイト作成ができるHTMLのテンプレート

スムージーは本当に健康に効果があるのか化学の観点でのみ考えてみる












★人気の記事一覧

合法的に女の子に精液の匂いを嗅がせる方法

【精子を食べる!?】食ザーが理にかなっているというお話

[Froala Design Blocks ]無料でオシャレなサイト作成ができるHTMLのテンプレート

スムージーは本当に健康に効果があるのか化学の観点でのみ考えてみる

気に入ったらLet's Share!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

ちゆり

6年間化学を専攻していたのになぜか一部上場のIT企業のエンジニアへ。脱サラ田舎暮らしに憧れ,なんだかんだプログラミングが好き。口癖は仕事辞めたい。凡人にはなりたくない凡人。