ข้อผิดพลาด: ไม่มีโมดูลชื่อ psycopg2.extensions


86

ฉันกำลังพยายามที่จะตั้งค่าฐานข้อมูล PostgreSQL สำหรับโครงการ Django ของฉันซึ่งฉันเชื่อว่าฉันได้ทำในขณะนี้ต้องขอบคุณการตอบคำถามสุดท้ายของฉันปัญหาการตั้งค่าฐานข้อมูล PostgreSQL สำหรับโครงการ ตอนนี้ฉันพยายามเรียกใช้คำสั่ง 'python Manage.py runningerver' ใน Terminal เพื่อให้ localhost ของฉันขึ้น แต่เมื่อฉันรันคำสั่งฉันเห็นการตอบสนองนี้ ...

Error: No module named psycopg2.extensions

ฉันไม่แน่ใจว่านี่หมายถึงอะไร - ฉันพยายามดาวน์โหลด psycopg2 แต่ดูเหมือนจะหาวิธีดาวน์โหลด psycopg2 โดยใช้ homebrew ไม่ได้ ฉันได้ลอง easy_install ติดตั้ง pip และ 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

@IanClelland ขอบคุณ Ian ฉันใช้ Mac OS X 10.6.8 ฉันติดตั้ง homebrew แล้วถ้าช่วยได้
เจส

ตรวจสอบสิ่งที่คุณใช้ล่ามจาก Venv ที่ถูกต้อง
Alex78191

คำตอบ:


168

สิ่งแรกที่ต้องทำคือการติดตั้งการอ้างอิง

sudo apt-get build-dep python-psycopg2

หลังจากนั้นเข้าไปใน Virtualenv ของคุณและใช้

pip install psycopg2-binary

คำสั่งทั้งสองนี้ควรแก้ปัญหาได้


7
ฉันต้องบอกว่าฉันจะไม่ใช้อย่างอื่นอีกแล้วนอกจาก pip มันดีกว่ามาก :-)
แฮร์รี่

11
สำหรับ Python 3sudo apt-get build-dep python3-psycopg2
laike9m

7
อะไรคือจุดของการสร้างการอ้างอิงด้วย apt แล้วติดตั้งด้วย pip? คำสั่งเดียวผิดsudo apt-get install python-psycopg2อะไร มันทำงานได้ดีสำหรับฉัน
kdbanman

2
ได้You must put some 'source' URIs in your sources.listในขณะที่ลองใช้คำสั่งใด ๆ ข้างต้น
Revolucion for Monica

2
@ nba2020: sudo apt-get ... ? นี่คือข้อกำหนดเบื้องต้นของ linux (debian / mint / ubuntu) สำหรับ psycopg2-binary หากคุณใช้ windows หรือสิ่งนั้นคุณควรค้นหาข้อกำหนดเบื้องต้นของ windows สำหรับ psycopg2-binary แทนและใช้ก่อนติดตั้ง psycopg2-binary หรืออาจจะ (ฉันไม่แน่ใจ) คุณสามารถข้ามข้อกำหนดเบื้องต้นและติดตั้ง psycopg2 แทน psycopg2-binary และสามารถใช้งานได้ อย่างไรก็ตาม psycopg2 (ไม่มี -binary) ถูกเลิกใช้ดังนั้นจะดีกว่าถ้าคุณลองติดตั้ง psycopg2-binary อย่างถูกต้อง
mirek

26
pip install psycopg2-binary

แพ็คเกจล้อ psycopg2 จะเปลี่ยนชื่อจากรุ่น 2.8; เพื่อให้การติดตั้งจากไบนารีต่อไปโปรดใช้ "pip install psycopg2-binary" แทน สำหรับรายละเอียดโปรดดูที่: http://initd.org/psycopg/docs/install.html#binary-install-from-pypi


สิ่งนี้ใช้ได้กับฉันใน ubuntu 18.04 และ python 3 ขอบคุณ
Danniel Little

สิ่งนี้ใช้ได้กับฉันและไม่ต้องได้รับอนุญาตจากรูทใด ๆ
Gianpaolo

ดีใจที่ช่วยได้ ^ _ ^
Charlie

1
แค่นี้ยังช่วยฉันไม่พอ ที่ไหนสักแห่งในประวัติศาสตร์ฉันได้ติดตั้ง psycopg2 และใหม่กว่า (จาก: -r requirements.txt) อย่างถูกต้อง psycopg2-binary ทุกอย่างทำงานได้ดี แต่เมื่อฉันถอนการติดตั้ง psycopg2 (โดยไม่มี -binary) ฉันได้รับข้อผิดพลาด "ไม่มีโมดูลชื่อ psycopg2.extensions" ถอนการติดตั้ง / ติดตั้ง psycopg2-binary ไม่ได้ช่วยฉัน สำหรับฉันไม่ได้ติดตั้งข้อกำหนดเบื้องต้น (ดูคำตอบ @FernandoMunoz: apt install build-dep python-psycopg2) การติดตั้งแพ็คเกจ Debian เหล่านี้และต่อมา (!) psycopg2-binary ช่วยฉันได้
mirek

@mirek ขอบคุณสำหรับส่วนเสริม
Charlie 木匠

6

สำหรับDjango 2และpython 3ติดตั้งpsycopg2โดยใช้pip3:

pip3 install psycopg2

หากคุณต้องการหลีกเลี่ยงการสร้างจากการติดpsycopg2-binaryตั้งต้นทางแทน
Ivan Gonzalez


5

สำหรับการทำงานเพียงmacOS Mojave pip install psycopg2-binaryใช้งานได้ดีสำหรับฉันเวอร์ชัน python ->Python 3.7.2



4

นี่คือสิ่งที่ช่วยฉันใน Ubuntu หาก python ของคุณติดตั้งจากตัวติดตั้ง Ubuntu ฉันทำสิ่งนี้หลังจากลอง 'apt-get install' และ 'pip install' ไม่สำเร็จ:

ในอาคารผู้โดยสาร:

sudo synaptic

จากนั้นในช่องค้นหา synaptic เขียน

psycopg2

เลือก

python-psycopg2

ทำเครื่องหมายสำหรับการติดตั้งโดยใช้เมาส์คลิกขวาและกด 'ใช้' แน่นอนถ้าคุณไม่ได้ติดตั้ง synaptic ก่อนอื่นให้ทำ:

sudo apt-get install synaptic

2

ใน python 3.4 ในขณะที่อยู่ในสภาพแวดล้อมเสมือนตรวจสอบให้แน่ใจว่าคุณมี build dependencies ก่อน:

sudo apt-get build-dep python3-psycopg2

จากนั้นติดตั้ง:

pip install psycopg2 

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

2

บน Alpine Linux (คอนเทนเนอร์นักเทียบท่าส่วนใหญ่) ทำ:

apk add postgresql-dev

จากนั้น:

pip install psycopg2-binary

1

ฉันใช้ส่วนขยายหลังจากนำเข้า psycopg2 เท่านั้น:

import psycopg2

...

psycopg2.extensions.AsIs(anap[i])

@fp ขอบคุณสำหรับการตอบกลับของคุณ คุณนำเข้า psycopg2 ได้อย่างไร? คุณใช้ homebrew หรือไม่? ฉันได้ลองเรียกใช้คำสั่ง 'import psycopg2' ใน Terminal ของฉัน แต่มันส่งกลับ 'ImportError: No module named psycopg2'
เจส

ฉันใช้ ubuntu ซึ่งพร้อมติดตั้งโดยไม่ต้องคอมไพล์ .. ตัวอย่างที่แสดงอยู่ใน python ในการติดตั้งใน windows ให้ดูที่stickpeople.com/projects/python/win-psycopgสิ่งที่คุณต้องการคือติดตั้งก่อน
fp

@fp ขอบคุณครับ. ฉันใช้ Mac - มีวิธีแก้ปัญหาที่คล้ายกันสำหรับ mac หรือไม่
Jess

@fb ขอบคุณค่ะ ฉันจะลองดู :)
Jess

1

ดูเหมือนว่าคุณต้องการ gcc-4.0และการระบุประเภทและเวอร์ชันของระบบปฏิบัติการของคุณจะเป็นประโยชน์

คำถามนี้อาจช่วยคุณได้เล็กน้อย: การติดตั้ง GCC ลงใน Mac OS X Leopard โดยไม่ต้องติดตั้ง Xcode

อัปเดต

ฉันเป็นผู้ใช้ Windows ดังนั้นฉันจึงไม่สามารถทดสอบการตั้งค่าของคุณได้ แต่ Google ฉบับย่อชี้ไปที่ลิงก์เพิ่มเติม:


ขอขอบคุณ. ฉันดาวน์โหลดและติดตั้ง GCC 10.6 แล้วเนื่องจากระบบปฏิบัติการของฉันคือ 10.6.8 จากนั้นฉันก็รัน easy_install psycopg2 แต่มันส่งกลับข้อผิดพลาดนี้ ... "ไม่พบไดเร็กทอรีที่รวมไว้ก่อนหน้านี้ที่ตรงกับ 'doc / src / _build' ไม่สามารถเรียกใช้งาน gcc-4.0: ไม่มีข้อผิดพลาดของไฟล์หรือไดเร็กทอรีดังกล่าว: สคริปต์การติดตั้งออกจาก error: command ' gcc-4.0 'ล้มเหลวด้วยสถานะการออก 1 " คุณรู้ไหมว่าทำไมถึงเป็นเช่นนั้น?
เจส

1

ฉันพบNo module named psycopg2.extensionsข้อผิดพลาดขณะพยายามรันpip2 install psycopg2บน Mac ที่ใช้ Mavericks (10.9) ฉันไม่คิดว่าการติดตามสแต็กของฉันมีข้อความเกี่ยวกับ 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_configแฟ้มใน Postgres /Applications/Postgres.app/Contents/Versions/9.4/binของฉันติดตั้งและเพิ่มโฟลเดอร์ที่มีไปยังเส้นทางของฉัน: เส้นทางของคุณอาจแตกต่างกันโดยเฉพาะอย่างยิ่งถ้าคุณติดตั้ง Postgres เวอร์ชันอื่นไว้ฉันจะโผล่ไปรอบ ๆ จนกว่าคุณจะพบbin/โฟลเดอร์ หลังจากทำเช่นนี้การติดตั้งก็ใช้งานได้


1

ลองสิ่งนี้:
sudo pip install -i https://testpypi.python.org/pypi psycopg2 == 2.7b2
.. สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณพบข้อผิดพลาดของไข่

บนอินสแตนซ์ aws ec2 หากคุณพบข้อผิดพลาด gcc ลองนี้
1. sudo yum ติดตั้ง gcc python-setuptools python-devel postgresql-devel
2. sudo su -
3. sudo pip install psycopg2



1

ฉันมีปัญหาดังกล่าวเมื่อพยายามเรียกใช้สคริปต์ python เป็น sudo ในขณะที่ psycopg2 ถูกติดตั้งผ่าน pip3 ไปยังไดเรกทอรีผู้ใช้ของฉัน

ฉันจัดการเพื่อแก้ไขปัญหาด้วยตัวเองที่ลบเวอร์ชัน pip3 และเพียงแค่ติดตั้งผ่าน apt:

pip3 uninstall psycopg2
sudo apt install python3-psycopg2


0

ตรวจสอบว่าคุณได้ติดตั้ง psycopg2 หรือไม่ถ้าไม่

sudo apt-get install psycopg2

ติดตั้งการอ้างอิง

sudo apt-get build-dep python-psycopg2

คำสั่งทั้งสองนี้ควรแก้ปัญหาได้


0
pip3 install django-psycopg2-extension

ฉันรู้ว่าฉันมาสายและมีคำตอบมากมายที่นี่ซึ่งช่วยแก้ปัญหาได้เช่นกัน แต่วันนี้ฉันก็ประสบปัญหานี้เช่นกันและไม่มีสิ่งใดช่วยฉันได้ จากนั้นฉันพบคำสั่งวิเศษข้างต้นซึ่งช่วยแก้ปัญหาของฉัน :-P. ดังนั้นฉันจึงโพสต์สิ่งนี้เนื่องจากอาจเป็นกรณีของคุณเช่นกัน
มีความสุขในการเขียนโค้ด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.