エラー:psycopg2.extensionsという名前のモジュールがありません


86

djangoプロジェクト用にPostgreSQLデータベースをセットアップしようとしていますが、最後の質問への回答のおかげで、djangoプロジェクト用にpostgreSQLデータベースをセットアップする際の問題が発生したと思います。ターミナルでコマンド「pythonmanage.pyrunserver」を実行してローカルホストを起動しようとしていますが、コマンドを実行すると、この応答が表示されます...

Error: No module named psycopg2.extensions

これが何を意味するのかわかりません-psycopg2をダウンロードしようとしましたが、homebrewを使用してpsycopg2をダウンロードする方法が見つからないようです。easy_install、pip install、sudoを試しましたが、すべて次のようなエラーが返されます...

Downloading http://www.psycopg.org/psycopg/tarballs/PSYCOPG-2-4/psycopg2-2.4.5.tar.gz
Processing psycopg2-2.4.5.tar.gz
Writing /tmp/easy_install-l7Qi62/psycopg2-2.4.5/setup.cfg
Running psycopg2-2.4.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-l7Qi62/psycopg2-2.4.5/egg-dist-tmp-PBP5Ds
no previously-included directories found matching 'doc/src/_build'
unable to execute gcc-4.0: No such file or directory
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1

これを修正する方法は?


コンパイラがインストールされておらず、psycopg2パッケージをビルドするためにコンパイラが必要です。オペレーティングシステムの詳細を提供できれば、ここの人々がおそらくそれを手伝ってくれるでしょう。
Ian Clelland 2012年

@IanClellandありがとうIan。私はMacOS X10.6.8を使用しています。それが助けになるなら、私は自作をインストールしました。
ジェス2012年

正しいvenvからインタプリタを使用しているものを確認してください。
Alex781 9119

回答:


168

最初に行うことは、依存関係をインストールすることです。

sudo apt-get build-dep python-psycopg2

その後、virtualenv内に移動して使用します

pip install psycopg2-binary

これらの2つのコマンドで問題が解決するはずです。


7
私はピップ以外のものを二度と使用しないと言わなければなりません、それはとても素晴らしいです:-)
ハリー

11
Python 3の場合sudo apt-get build-dep python3-psycopg2
laike9m 2014

7
aptを使用して依存関係を構築し、pipを使用してインストールすることのポイントは何ですか?単一のコマンドの何が問題になっていsudo apt-get install python-psycopg2ますか?それは私にとってはうまくいきました。
kdbanman 2015年

2
You must put some 'source' URIs in your sources.list上記のコマンドのいずれかをtriyng中
革命モニカのために

2
@ nba2020:sudo apt-get ...?これらは、psycopg2-binaryのLinux(debian / mint / ubuntu)の前提条件です。Windowsなどを使用する場合は、代わりにpsycopg2-binaryのWindowsの前提条件を見つけて、psycopg2-binaryをインストールする前にそれらを適用する必要があります。または、(よくわかりませんが)前提条件をスキップして、psycopg2-binaryの代わりにpsycopg2をインストールすると、機能する可能性があります。ただし、psycopg2(-binaryなし)は非推奨であるため、psycopg2-binaryを正しくインストールしようとするとより良い結果が得られます。
mirek

26
pip install psycopg2-binary

psycopg2ホイールパッケージはリリース2.8から名前が変更されます。バイナリからのインストールを継続するには、代わりに「pipinstallpsycopg2-binary」を使用してください。詳細については、http//initd.org/psycopg/docs/install.html#binary-install-from-pypiを参照してください。


これは、ubuntu18.04とpython3で機能します。ありがとうございます。
ダニエルリトル

これは私のために動作し、また、任意のroot権限を必要としない
Gianpaolo

お役に立ててうれしいです。^ _ ^
チャーリー木脚

1
これは私を十分に助けません。歴史のどこかで、psycopg2以降(-rrequirements.txtから)を適切にpsycopg2-binaryにインストールしました。すべてが「正常に」機能しました。しかし、psycopg2を(-binaryなしで)アンインストールすると、「psycopg2.extensionsという名前のモジュールがありません」というエラーが表示されました。psycopg2-binaryをアンインストール/インストールしても役に立ちません。私にとって、前提条件はインストールされていませんでした(@FernandoMunozの回答:apt install build-dep python-psycopg2を参照)。これらのDebianパッケージとそれ以降(!)のpsycopg2-binaryをインストールすることは私を助けてくれました。
mirek

@mirek補完してくれてありがとう。
チャーリー木コード


5

次のコマンドを使用して正常にインストールしました。

sudo apt-get install libpq-dev python-dev
pip install psycopg2

5

以下のためにmacOS Mojaveだけ実行しますpip install psycopg2-binary。私にとっては問題なく動作します、Pythonバージョン->Python 3.7.2


4

最初のインストール apt-get install python-setuptools

その後、試してみてください easy_install psycopg2


4

これは、PythonがUbuntuインストーラーからインストールされた場合にUbuntuで私を助けたものです。'apt-getinstall'と 'pip install'の試行に失敗した後、これを実行しました。

ターミナル内:

sudo synaptic

次にシナプス検索フィールドに書き込みます

psycopg2

選択

python-psycopg2

マウスの右クリックを使用してインストール用にマークを付け、「適用」を押します。もちろん、synapticをインストールしていない場合は、最初に次のようにします。

sudo apt-get install synaptic

2

Python 3.4では、仮想環境で、最初にビルドの依存関係があることを確認してください。

sudo apt-get build-dep python3-psycopg2

次に、それをインストールします。

pip install psycopg2 

E: You must put some 'source' URIs in your sources.list
セリン


1

psycopg2のみをインポートした後、拡張機能を使用しました。

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fpお返事ありがとうございます。psycopg2をどのようにインポートしましたか?自作を使いましたか?ターミナルでコマンド「importpsycopg2」を実行しようとしましたが、「ImportError:No modulenamedpsycopg2」が返されます。
ジェス2012年

コンパイルせずにインストールする準備ができているubuntuを使用しています。示されている例はPythonです。Windowsにインストールするには、stickpeople.com / projects / python / win-psycopgを参照してください。最初にインストールする必要があります。
fp 2012年

@fpありがとうございます。私はMacを使用しています-Mac用の同様のソリューションはありますか?
ジェス2012年

@fbありがとうございます。試してみます:)
Jess

1

が必要なようですがgcc-4.0、OSの種類とバージョンを指定すると便利です。

たぶん、この質問は少し役立つでしょう:XcodeをインストールせずにMac OS XLeopardにGCCをインストールする

更新

私はWindowsユーザーなので、セットアップをテストすることはできませんが、簡単なグーグルがさらにいくつかのリンクを示しました。


ありがとうございました。OSが10.6.8なので、GCC10.6をダウンロードしてインストールしました。次にeasy_installpsycopg2を実行しましたが、このエラーが返されました...「 'doc / src / _build'に一致する以前に含まれていたディレクトリが見つかりませんgcc-4.0を実行できません:そのようなファイルまたはディレクトリエラーはありません:セットアップスクリプトがエラーで終了しました:コマンド ' gcc-4.0 'が終了ステータス1 "で失敗しました。なぜそうなるのか知っていますか?
ジェス2012年

1

Mavericks(10.9)No module named psycopg2.extensionsを実行pip2 install psycopg2しているMacで実行しようとすると、エラーが発生しました。スタックトレースにgccに関するメッセージが含まれているとは思いません。また、ヒントも含まれています。

Error: pg_config executable not found.

Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:

    python setup.py build_ext --pg-config /path/to/pg_config build ...

or with the pg_config option in 'setup.cfg'.

pg_configPostgresインストールでファイルを探し、それを含むフォルダーをパスに追加しました:/Applications/Postgres.app/Contents/Versions/9.4/bin。特にPostgresの異なるバージョンがインストールされている場合は、パスが異なる可能性がありbin/ます。フォルダが見つかるまで、私はただ調べます。これを行った後、インストールは機能しました。


1

これを試してください:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
..これは、eggエラーが発生した場合に特に役立ちます。

gccエラーが発生した場合のawsec2インスタンス。これを試してください 1.sudo
yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su-
3。sudo pip install psycopg2



1

psycopg2がpip3を介して自分のユーザーのディレクトリにインストールされているときに、Pythonスクリプトをsudoとして実行しようとすると、このような問題が発生しました。

私はpip3バージョンを削除し、aptを介してインストールするだけで問題を解決することができました。

pip3 uninstall psycopg2
sudo apt install python3-psycopg2


0

psycopg2がインストールされているかどうかを確認してください。

sudo apt-get install psycopg2

依存関係をインストールします。

sudo apt-get build-dep python-psycopg2

これらの2つのコマンドで問題が解決するはずです。


0
pip3 install django-psycopg2-extension

私は遅れていることを知っています、そしてここにも問題を解決するたくさんの答えがあります。しかし、今日私もこの問題に直面しました、そしてこれのどれも私を助けません。それから私は私の問題を解決する上記の魔法のコマンドを見つけました:-P。だから私はあなたにもそうかもしれないのでこれを投稿しています。
ハッピーコーディング。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.