ไม่พบเส้นทางของโมดูล Python


1

ในการติดตั้ง Openstack ของเราเกิดข้อผิดพลาดอย่างมาก ตอนนี้หลามไม่ทำงานอย่างถูกต้องอีกต่อไป ไม่พบเส้นทางโมดูล:

root@controller:/root# keystone token-get
Traceback (most recent call last):
  File "/usr/bin/keystone", line 6, in <module>
    from keystoneclient.shell import main
ImportError: No module named shell

ถ้าฉันเพิ่มเส้นทางโมดูลผ่านตัวแปรสภาพแวดล้อมข้อผิดพลาดนี้จะหายไป ... (ข้อผิดพลาดอื่น ๆ ไม่สำคัญในขณะนี้)

root@controller:/root# export PYTHONPATH=/usr/lib/python2.7/dist-packages
root@controller:/root# keystone token-get
Authorization Failed: Unable to establish connection to http://controller:35357/v2.0/tokens

รายละเอียดแปลก: แม้จะไม่มีการตั้งค่าตัวแปรสภาพแวดล้อมของ python -m site ดูเหมือนว่าจะรู้เส้นทางที่ถูกต้อง:

sys.path = [
'/root',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
]
USER_BASE: '/root/.local' (doesn't exist)
USER_SITE: '/root/.local/lib/python2.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

เนื่องจาก python นั้นไม่ทำงานใน Apache สำหรับแดชบอร์ดจึงไม่มีตัวเลือกในการตั้งค่าตัวแปรสภาพแวดล้อมด้วย "ส่งออก" ทุกครั้ง เราต้องแก้ไขปัญหาที่อื่น

ไพ ธ อนรวมเส้นทางที่กำหนดไว้ที่ไหน?

UPDATE:

คำสั่งของเส้นทาง lib ดูเหมือนว่าจะมีความสำคัญ มันใช้งานได้:

PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages; keystone token-get

และนี่ไม่ทำงาน:

PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages; keystone token-get

ฉันเคยแก้ไขปัญหาที่คล้ายกันโดยการติดตั้ง Python ด้วยcheckinstallแล้วเอาแพ็คเกจออกdpkgและติดตั้งการติดตั้งระบบ Python อีกครั้ง บางระบบ (เช่น Ubuntu) ระบุอย่างชัดเจนว่าไม่รองรับการติดตั้ง Python อย่างดี
Karl Richter

คำตอบ:


2
export PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages; keystone token-get

ทำงานให้ฉันขอบคุณ

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