質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.37%

PythonのPostgreSQL用パッケージ(psycopg2)をインストールしたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,350
退会済みユーザー

退会済みユーザー

前提・実現したいこと

前提:
Djangogirls tutorialの「PostgreSQLのインストール」で躓きました。
その中の「PythonのPostgreSQL用パッケージのインストール」までは問題なく進められていました。
参考:https://tutorial-extensions.djangogirls.org/ja/optional_postgresql_installation/

同様の問題を取り扱ったstack over flowの記事に書いてある対処法は一通り行いました。
参考:https://stackoverflow.com/questions/12906351/importerror-no-module-named-psycopg2

実現したいこと:

(myvenv) alcohole:~/environment/djangogirls (master) $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2'


のMuduleNotFoundErrorを解消したいです。

該当のソースコード

以下は、python, pip, herokuのバージョンの表示、postgreSQLの状態、
そして調べて出てきた対処法を一通り試してみたログとsettings.pyです。

### bash(AWS Cloud9のAmazon Linux)

(myvenv) alcohole:~/environment/djangogirls (master) $ python --version
Python 3.6.8

(myvenv) alcohole:~/environment/djangogirls (master) $ pip --version
pip 19.3.1 from /home/ec2-user/environment/djangogirls/myvenv/lib64/python3.6/dist-packages/pip (python 3.6)

(myvenv) alcohole:~/environment/djangogirls (master) $ heroku -v
heroku-cli/7.0.9 linux-x64 node-v10.16.3

(myvenv) alcohole:~/environment/djangogirls (master) $ psql
psql: FATAL:  role "ec2-user" does not exist

(myvenv) alcohole:~/environment/djangogirls (master) $ sudo -u postgres psql
could not change directory to "/home/ec2-user/environment/djangogirls"
psql (9.2.24)
Type "help" for help.

postgres=# CREATE USER KentoHomma;
ERROR:  role "kentohomma" already exists
postgres=# CREATE DATABASE djangogirls OWNER KentoHomma
postgres-# ;
ERROR:  database "djangogirls" already exists
postgres=# pip install psycopg2
postgres-# ^\

(myvenv) alcohole:~/environment/djangogirls (master) $ pip install psycopg2
Requirement already satisfied: psycopg2 in ./myvenv/lib/python3.6/dist-packages (2.8.4)

(myvenv) alcohole:~/environment/djangogirls (master) $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2'

(myvenv) alcohole:~/environment/djangogirls (master) $ pip install psycopg2-binary
Requirement already satisfied: psycopg2-binary in ./myvenv/lib/python3.6/dist-packages (2.8.4)

(myvenv) alcohole:~/environment/djangogirls (master) $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2'

(myvenv) alcohole:~/environment/djangogirls (master) $ yum install postgresql-devel-8.4.20-4.el6_7.x86_64
Loaded plugins: priorities, update-motd, upgrade-helper
You need to be root to perform this command.

(myvenv) alcohole:~/environment/djangogirls (master) $ sudo yum install postgresql-devel-8.4.20-4.el6_7.x86_64
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main                                                                                                                                                                    | 2.1 kB  00:00:00     
amzn-updates                                                                                                                                                                 | 2.5 kB  00:00:00     
1065 packages excluded due to repository priority protections
No package postgresql-devel-8.4.20-4.el6_7.x86_64 available.
Error: Nothing to do

(myvenv) alcohole:~/environment/djangogirls (master) $ yum install python-psycopg2
Loaded plugins: priorities, update-motd, upgrade-helper
You need to be root to perform this command.

(myvenv) alcohole:~/environment/djangogirls (master) $ pip yum install python-psycopg2
ERROR: unknown command "yum"

(myvenv) alcohole:~/environment/djangogirls (master) $ sudo yum install python-psycopg2
Loaded plugins: priorities, update-motd, upgrade-helper
1065 packages excluded due to repository priority protections
Package python26-psycopg2-2.5.1-3.8.amzn1.x86_64 already installed and latest version
Nothing to do

(myvenv) alcohole:~/environment/djangogirls (master) $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2'

(myvenv) alcohole:~/environment/djangogirls (master) $ sudo yum install build-dep python-psycopg2
Loaded plugins: priorities, update-motd, upgrade-helper
1065 packages excluded due to repository priority protections
No package build-dep available.
Package python26-psycopg2-2.5.1-3.8.amzn1.x86_64 already installed and latest version
Nothing to do

(myvenv) alcohole:~/environment/djangogirls (master) $ pip install psycopg2 
Requirement already satisfied: psycopg2 in ./myvenv/lib/python3.6/dist-packages (2.8.4)

(myvenv) alcohole:~/environment/djangogirls (master) $ sudo yum install libpq-dev
Loaded plugins: priorities, update-motd, upgrade-helper
1065 packages excluded due to repository priority protections
No package libpq-dev available.
Error: Nothing to do

(myvenv) alcohole:~/environment/djangogirls (master) $ pip install psycopg2
Requirement already satisfied: psycopg2 in ./myvenv/lib/python3.6/dist-packages (2.8.4)

(myvenv) alcohole:~/environment/djangogirls (master) $ sudo python -m pip install psycopg2
Collecting psycopg2
  Downloading https://files.pythonhosted.org/packages/84/d7/6a93c99b5ba4d4d22daa3928b983cec66df4536ca50b22ce5dcac65e4e71/psycopg2-2.8.4.tar.gz (377kB)
    100% |████████████████████████████████| 378kB 2.7MB/s 
Building wheels for collected packages: psycopg2
  Running setup.py bdist_wheel for psycopg2 ... done
  Stored in directory: /root/.cache/pip/wheels/7e/5b/53/30085c62689dcfce50c8f40759945a49eb856af082e9ebf751
Successfully built psycopg2
Installing collected packages: psycopg2
Successfully installed psycopg2-2.8.4
You are using pip version 9.0.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

(myvenv) alcohole:~/environment/djangogirls (master) $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2'

(myvenv) alcohole:~/environment/djangogirls (master) $ sudo yum install python3 python-dev python3-dev
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main                                                                                                                                                                    | 2.1 kB  00:00:00     
amzn-updates                                                                                                                                                                 | 2.5 kB  00:00:00     
1065 packages excluded due to repository priority protections
No package python3 available.
No package python-dev available.
No package python3-dev available.
Error: Nothing to do

(myvenv) alcohole:~/environment/djangogirls (master) $ pip install psycopg2
Requirement already satisfied: psycopg2 in ./myvenv/lib/python3.6/dist-packages (2.8.4)

(myvenv) alcohole:~/environment/djangogirls (master) $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2'

(myvenv) alcohole:~/environment/djangogirls (master) $ easy_install psycopg2
Searching for psycopg2
Best match: psycopg2 2.8.4
Adding psycopg2 2.8.4 to easy-install.pth file

Using /home/ec2-user/environment/djangogirls/myvenv/lib/python3.6/dist-packages
Processing dependencies for psycopg2
Finished processing dependencies for psycopg2

(myvenv) alcohole:~/environment/djangogirls (master) $ python -c "import psycopg2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'psycopg2'

### settings.py(database部分)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'djangogirls',
        'USER': 'KentoHomma',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '',
    }
}

補足情報(FW/ツールのバージョンなど)

server EC2
platform AmazonLinux
Django 2.0.2
git 2.14.5

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

いったん仮想環境をdeactive→pipをpython3.6用に変更→pip 19にupgrade→改めて仮想環境をactivateして試してみたところ解決しました。
仮想環境の問題は仮想環境上にしかないと思いつつもダメ元で試したら成功したので少し驚きました...

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る