Lỗi: Không có mô-đun nào có tên psycopg2.extensions


86

Tôi đang cố gắng thiết lập cơ sở dữ liệu PostgreSQL cho dự án django của mình, điều này tôi tin rằng tôi đã làm được ngay bây giờ nhờ các câu trả lời cho câu hỏi cuối cùng của tôi Sự cố khi thiết lập cơ sở dữ liệu postgreSQL cho dự án django . Bây giờ tôi đang cố gắng chạy lệnh 'python management.py runningerver' trong Terminal để khởi động máy chủ cục bộ của mình nhưng khi tôi chạy lệnh, tôi thấy phản hồi này ...

Error: No module named psycopg2.extensions

Tôi không chắc điều này có nghĩa là gì - Tôi đã cố gắng tải xuống psycopg2 nhưng dường như không thể tìm thấy cách tải xuống psycopg2 bằng homebrew. Tôi đã thử easy_install, pip install và sudo nhưng tất cả đều trả về lỗi như thế này ...

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

Làm thế nào để khắc phục điều này?


Bạn chưa cài đặt trình biên dịch và bạn cần một trình biên dịch để xây dựng gói psycopg2. Nếu bạn có thể cung cấp thông tin chi tiết về hệ điều hành của mình, mọi người ở đây có thể giúp bạn điều đó.
Ian Clelland

@IanClelland Cảm ơn Ian. Tôi đang sử dụng Mac OS X 10.6.8. Tôi đã cài đặt homebrew nếu điều đó có ích.
Jess

Kiểm tra những gì bạn đang sử dụng thông dịch viên từ đúng nơi.
Alex78191

Câu trả lời:


167

Điều đầu tiên cần làm là cài đặt các phụ thuộc.

sudo apt-get build-dep python-psycopg2

Sau đó vào bên trong virtualenv của bạn và sử dụng

pip install psycopg2-binary

Hai lệnh này sẽ giải quyết vấn đề.


7
Tôi phải nói rằng tôi sẽ không bao giờ sử dụng bất cứ thứ gì khác ngoài pip, nó đẹp hơn rất nhiều :-)
Harry

11
Đối với Python 3,sudo apt-get build-dep python3-psycopg2
laike9m

7
Mục đích của việc xây dựng các phụ thuộc bằng apt, sau đó cài đặt bằng pip là gì? Có gì sai với lệnh đơn sudo apt-get install python-psycopg2? Nó làm việc tốt cho tôi.
kdbanman

2
You must put some 'source' URIs in your sources.listkhi triyng bất kỳ lệnh trên
Revolucion cho Monica

2
@ nba2020: sudo apt-get ...? Đây là các điều kiện tiên quyết của linux (debian / mint / ubuntu) cho psycopg2-binary. Nếu bạn sử dụng windows hoặc thứ gì đó tương tự, bạn nên tìm các điều kiện tiên quyết của windows cho psycopg2-binary và áp dụng chúng trước khi cài đặt psycopg2-binary. Hoặc có thể (tôi không chắc) bạn có thể bỏ qua các điều kiện tiên quyết và cài đặt psycopg2 thay vì psycopg2-binary và nó có thể hoạt động. Tuy nhiên, psycopg2 (không có -binary) không được dùng nữa nên sẽ tốt hơn nếu bạn thử cài đặt đúng psycopg2-binary.
mirek

26
pip install psycopg2-binary

Gói bánh xe psycopg2 sẽ được đổi tên từ bản phát hành 2.8; để tiếp tục cài đặt từ hệ nhị phân, vui lòng sử dụng "pip install psycopg2-binary" để thay thế. Để biết chi tiết, hãy xem: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi .


Điều này phù hợp với tôi trên ubuntu 18.04 và python 3. Cảm ơn.
Danniel Little

Điều này phù hợp với tôi và cũng không yêu cầu bất kỳ quyền root nào
Gianpaolo

Rất vui vì nó có ích. ^ _ ^
Charlie 木匠

1
Điều này không giúp tôi đủ. Ở một nơi nào đó trong lịch sử, tôi đã cài đặt psycopg2 trở lên (từ: -r request.txt) đúng psycopg2-binary. Mọi thứ hoạt động "tốt". Nhưng sau khi gỡ cài đặt psycopg2 (không có -binary), tôi đã nhận được lỗi "Không có mô-đun nào có tên psycopg2.extensions". Gỡ cài đặt / cài đặt psycopg2-binary không giúp được gì cho tôi. Đối với tôi, các điều kiện tiên quyết chưa được cài đặt (xem câu trả lời @FernandoMunoz: apt install build-dep python-psycopg2). Việc cài đặt các gói Debian này và sau đó (!) Psycopg2-binary đã giúp tôi.
mirek

@mirek Cảm ơn bạn đã bổ sung.
Charlie 木匠

6

Đối với Django 2python 3cài đặt psycopg2bằng cách sử dụng pip3:

pip3 install psycopg2

5

Tôi đã cài đặt nó thành công bằng các lệnh sau:

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

5

Đối với macOS Mojavechỉ cần chạy pip install psycopg2-binary. Hoạt động tốt cho tôi, phiên bản python ->Python 3.7.2



4

Đây là những gì đã giúp tôi trên Ubuntu nếu python của bạn được cài đặt từ trình cài đặt Ubuntu. Tôi đã làm điều này sau khi thử 'apt-get install' và 'pip install' không thành công:

Trong thiết bị đầu cuối:

sudo synaptic

sau đó trong trường tìm kiếm tiếp hợp viết

psycopg2

chọn

python-psycopg2

đánh dấu nó để cài đặt bằng cách nhấp chuột phải và nhấn 'áp dụng'. Tất nhiên, nếu bạn chưa cài đặt synap, thì trước tiên hãy làm:

sudo apt-get install synaptic

2

Trong python 3.4, khi ở trong môi trường ảo, trước tiên hãy đảm bảo rằng bạn có các phụ thuộc xây dựng:

sudo apt-get build-dep python3-psycopg2

Sau đó cài đặt nó:

pip install psycopg2 

E: You must put some 'source' URIs in your sources.list
Cerin

2

Trên Alpine Linux (phần lớn các bộ chứa docker) thực hiện:

apk add postgresql-dev

Sau đó:

pip install psycopg2-binary

1

Tôi đã sử dụng tiện ích mở rộng sau khi chỉ nhập psycopg2:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fp Cảm ơn bạn đã trả lời. Bạn đã nhập psycopg2 như thế nào? Bạn đã sử dụng homebrew? Tôi đã thử chạy lệnh 'import psycopg2' trong Terminal nhưng nó trả về 'ImportError: Không có mô-đun nào có tên psycopg2'.
Jess

Tôi đang sử dụng ubuntu, nơi nó sẵn sàng cài đặt mà không cần biên dịch .. Ví dụ được hiển thị bằng python. Để cài đặt trong windows, hãy xem stickpeople.com/projects/python/win-psycopg Điều bạn muốn là cài đặt nó trước.
fp

@fp Cảm ơn bạn. Tôi đang sử dụng mac - có giải pháp tương tự cho mac không?
Jess

@fb Cảm ơn bạn. Tôi sẽ thử :)
Jess

1

Có vẻ như bạn cần gcc-4.0và sẽ hữu ích nếu chỉ định loại và phiên bản hệ điều hành của bạn.

Có thể câu hỏi này sẽ giúp ích cho bạn một chút: Cài đặt GCC cho Mac OS X Leopard mà không cần cài đặt Xcode

Cập nhật

Tôi là người dùng Windows, vì vậy tôi không thể kiểm tra thiết lập của bạn, nhưng một google nhanh chóng đã chỉ ra một số liên kết khác:


Cảm ơn bạn. Tôi đã tải xuống và cài đặt GCC 10.6 vì hệ điều hành của tôi là 10.6.8. Sau đó, tôi chạy easy_install psycopg2 nhưng nó trả về lỗi này ... "không tìm thấy thư mục nào được bao gồm trước đó phù hợp với 'doc / src / _build' không thể thực thi gcc-4.0: Không có tệp hoặc thư mục nào bị lỗi: Tập lệnh thiết lập đã thoát với lỗi: lệnh ' gcc-4.0 'không thành công với trạng thái thoát 1 ". Bạn có biết tại sao có thể như vậy không?
Jess

1

Tôi gặp phải No module named psycopg2.extensionslỗi khi cố gắng chạy pip2 install psycopg2trên máy Mac chạy Mavericks (10.9). Tôi không nghĩ rằng dấu vết ngăn xếp của tôi bao gồm một thông báo về gcc và nó cũng bao gồm một gợi ý:

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'.

Tôi đã tìm kiếm các pg_configtập tin trong tôi Postgres cài đặt và thêm vào thư mục chứa nó để con đường của tôi: /Applications/Postgres.app/Contents/Versions/9.4/bin. Đường dẫn của bạn có thể khác, đặc biệt nếu bạn đã cài đặt một phiên bản Postgres khác - Tôi sẽ chỉ dò tìm cho đến khi bạn tìm thấy bin/thư mục. Sau khi thực hiện việc này, cài đặt đã hoạt động.


1

hãy thử cái này:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. điều này đặc biệt hữu ích nếu bạn đang gặp lỗi trứng

trên các trường hợp aws ec2 nếu bạn gặp lỗi gcc; hãy thử cái này
1. sudo yum install gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip install psycopg2


1

Cái này làm việc cho tôi

python management.py di chuyển


1

Tôi đã gặp sự cố như vậy khi cố gắng chạy tập lệnh python dưới dạng sudo, trong khi psycopg2 được cài đặt qua pip3 vào thư mục người dùng của riêng tôi.

Tôi đã cố gắng giải quyết sự cố cho chính mình khi xóa phiên bản pip3 và chỉ cần cài đặt nó qua apt:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2


0

Kiểm tra xem bạn đã cài đặt psycopg2 chưa nếu chưa

sudo apt-get install psycopg2

Cài đặt các phụ thuộc.

sudo apt-get build-dep python-psycopg2

Hai lệnh này sẽ giải quyết vấn đề.


0
pip3 install django-psycopg2-extension

Tôi biết tôi đến muộn và có rất nhiều câu trả lời ở đây cũng giải quyết được vấn đề. Nhưng hôm nay tôi cũng phải đối mặt với vấn đề này và không ai trong số này giúp tôi. Sau đó, tôi tìm thấy lệnh kỳ diệu ở trên để giải quyết vấn đề của tôi :-P. vì vậy tôi đăng bài này vì nó cũng có thể phù hợp với bạn.
Chúc bạn viết mã vui vẻ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.