ข้อผิดพลาด CentOS พร้อม mod_wsgi: ไม่พบ -lpython3.2


0

ฉันพยายามติดตั้ง mod_wsgi ที่กำหนดค่าสำหรับ Python 3.2 บนเครื่อง CentOS และฉันยังคงพบข้อผิดพลาด:

/ usr / bin / ld: ไม่พบ -lpython3.2

เช่นเดียวกับที่ฉันบอกได้ว่าสิ่งนี้เกิดจากการขาดหายไปlibpython3.2.soหรือสิ่งที่เทียบเท่า แต่ฉันไม่สามารถหาวิธีสร้างไฟล์นั้นได้

ข้อมูลที่เกี่ยวข้องบางส่วน:

  1. การติดตั้ง Python คือ 3.2 ดาวน์โหลดจาก python.org เป็น tar.bz2
  2. md5sumของPython-3.2.tar.bz2แมตช์หนึ่งใน Python.org
  3. ปัญหานี้เกิดขึ้นทั้งกับ mod_wsgi จากที่เก็บ hg และจาก mod_wsgi-3.3.tar.gz

(ฉันรู้ว่านี่อาจเป็นคำถามที่ผิดพลาดของเซิร์ฟเวอร์ แต่ดูเหมือนว่าจะเป็นฟอรัมที่ใช้งานง่ายกว่า)

(เอาท์พุทด้านล่างสำหรับการอ้างอิง)

[root@<>mod_wsgi-3.3]# ./configure PYTHON=/usr/local/bin/python3.2
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking Apache version... 2.2.3
configure: creating ./config.status
config.status: creating Makefile
[root@<> mod_wsgi-3.3]# make
... (I will include this if requested, but it makes it easier to 
    read if this is removed)
mod_wsgi.c:7154: warning: 'wsgi_set_py3k_warning_flag' defined but not used
mod_wsgi.c:7856: warning: 'wsgi_set_user_authoritative' defined but not used
mod_wsgi.c:14414: warning: 'wsgi_hook_check_user_id' defined but not used
/usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_wsgi.la  -rpath /usr/lib/httpd/modules -module -avoid-version    mod_wsgi.lo -L/usr/local/lib
-L/usr/local/lib/python3.2/config -lpython3.2 -lpthread -ldl -lutil -lm
/usr/bin/ld: cannot find -lpython3.2
collect2: ld returned 1 exit status
apxs:Error: Command failed with rc=65536
.
make: *** [mod_wsgi.la] Error 1
[root@<> mod_wsgi-3.3]#

คุณสามารถแสดงรายการไฟล์/usr/local/lib/python3.2/configในโพสต์ของคุณได้ไหม?
John T

ดูเหมือนจะไม่อยู่ที่นั่น ... นี่เป็นคำสั่งติดตั้งที่ฉันพลาดหรือไม่
cwallenpoole

makefile กำลังมองหาการกำหนดค่าในไดเรกทอรีนั้นสำหรับ linker ( ld) คุณสามารถปรับเปลี่ยน makefile ให้ชี้ไปที่การติดตั้ง Python หรือติดตั้ง Python ใหม่ภายใต้ไดเรกทอรีมาตรฐาน
John T

ฉันจะไปหาวิธีการทำอย่างไร (ฉันเพิ่งใช้. / config --enable-shared; make; ทำการติดตั้งสำหรับการติดตั้ง Python)
cwallenpoole

อะไรคือข้อโต้แย้ง 'กำหนดค่า' ที่แท้จริงที่คุณให้ไว้เมื่อสร้าง Python สำหรับ mod_wsgi เพื่อระบุตำแหน่งที่ติดตั้ง Python คุณควรใช้ตัวเลือก --with-python และไม่ได้ตั้งค่าตัวแปร PYTHON เมื่อรันการกำหนดค่า
Graham Dumpleton

คำตอบ:


0

ถ้าคุณสร้าง Python 3.2 ด้วย:

./configure --enable-shared; make; make install

ดังที่คุณพูดแล้วจะมีการติดตั้งภายใต้ / usr และไม่อยู่ภายใต้ / usr / local ดังนั้นดูเหมือนว่าคุณอาจมีการติดตั้ง Python สองครั้งสำหรับ 3.2 และการตั้งค่า PATH หรือ PYTHON ของคุณหมายความว่าคุณกำลังเลือกหนึ่งภายใต้ / usr / local และไม่ใช่หนึ่งที่ติดตั้งภายใต้ / usr ขึ้นอยู่กับการตั้งค่ากำหนด หาจำนวนการติดตั้ง Python ที่คุณมีอยู่จริงที่ไหนและรุ่นใด ตรวจสอบให้แน่ใจด้วยว่าเมื่อคุณกำลังสร้างซอร์สโค้ดใหม่สำหรับ Python หรือ mod_wsgi ที่คุณทำ:

make distclean

ระหว่างการสร้างเพื่อให้แน่ใจว่าคุณไม่มีอะไรเหลือจากการสร้างก่อนหน้านี้จากการกำหนดค่าก่อนหน้า

โปรดทราบว่าคุณควรแก้ไขคำถามต้นฉบับของคุณเพื่อเพิ่มข้อมูลเพิ่มเติมและไม่เพียง แต่เพิ่มในความคิดเห็นซึ่งหายาก

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