Python ใช้ PYTHONPATH
ตัวแปรสภาพแวดล้อมเพื่อกำหนดว่าโฟลเดอร์ใดที่ควรค้นหาโมดูล คุณสามารถเล่นกับมันได้โดยการแก้ไข sys.path
ซึ่งทำงานได้ดีกับโมดูล Python ล้วนๆ แต่เมื่อโมดูลใช้ไฟล์อ็อบเจ็กต์ที่ใช้ร่วมกันหรือไลบรารีแบบคงที่ มันจะค้นหาไฟล์เหล่านั้นใน LD_LIBRARY_PATH
(บน linux) แต่สิ่งนี้ไม่สามารถเปลี่ยนแปลงได้ง่าย ๆ และขึ้นอยู่กับแพลตฟอร์มเท่าที่ฉันรู้
การแก้ไขด่วนสำหรับปัญหานี้คือการตั้งค่าตัวแปรสภาพแวดล้อมหรือเรียกใช้สคริปต์เช่น LD_LIBRARY_PATH=. ./script.py
แต่คุณจะต้องตั้งค่าอีกครั้งสำหรับทุกเชลล์ใหม่ที่คุณเปิด นอกจากนี้ ไฟล์ .so
ในกรณีของฉันจะอยู่ในไดเร็กทอรีเดียวกันกับไฟล์ .py
เสมอ แต่อาจถูกย้ายไปยังพาธสัมบูรณ์อื่น ดังนั้นฉันต้องการตั้งค่าโดยอัตโนมัติทุกครั้งที่เรียกใช้สคริปต์
ฉันจะแก้ไขเส้นทางที่ล่าม Python ค้นหาแพลตฟอร์มไลบรารีที่ไม่ขึ้นอยู่กับรันไทม์ได้อย่างไร
แก้ไข:
ฉันได้ลอง os.environ['LD_LIBRARY_PATH'] = os.getcwd()
แล้ว แต่ก็ไม่มีประโยชน์
.so
หรือ.a
แต่เป็นไฟล์.dll
และ.lib
และไลบรารีของฉันต้องได้รับการคอมไพล์ใหม่ไม่ทางใดก็ทางหนึ่ง ฉันแค่รู้สึกว่าโซลูชันที่รวดเร็วและสกปรกจะช่วยให้การทดสอบและพัฒนาง่ายขึ้น - person iFreilicht   schedule 23.04.2014