นำเข้าฟังก์ชันโลคัลจากโมดูลที่อยู่ในไดเร็กทอรีอื่นที่มีการนำเข้าแบบสัมพัทธ์ใน Jupyter Notebook โดยใช้ Python 3
ฉันมีโครงสร้างไดเรกทอรีคล้ายกับสิ่งต่อไปนี้ meta_project project1 __init__.py lib module.py __init__.py notebook_folder notebook.jpynb เมื่อทำงานในnotebook.jpynbถ้าฉันพยายามใช้การนำเข้าสัมพัทธ์เพื่อเข้าถึงฟังก์ชันfunction()ในmodule.py: from ..project1.lib.module import function ฉันได้รับข้อผิดพลาดต่อไปนี้: SystemError Traceback (most recent call last) <ipython-input-7-6393744d93ab> in <module>() ----> 1 from ..project1.lib.module import function SystemError: Parent module '' not loaded, cannot perform relative import มีวิธีใดบ้างที่จะทำให้สิ่งนี้ทำงานโดยใช้การนำเข้าแบบสัมพัทธ์ หมายเหตุเซิร์ฟเวอร์โน้ตบุ๊กถูกสร้างอินสแตนซ์ที่ระดับของmeta_projectไดเร็กทอรีดังนั้นจึงควรเข้าถึงข้อมูลในไฟล์เหล่านั้น โปรดทราบว่าอย่างน้อยที่สุดตามที่ตั้งใจไว้เดิมproject1ไม่ได้คิดว่าเป็นโมดูลดังนั้นจึงไม่มี__init__.pyไฟล์จึงมีความหมายเพียงแค่เป็นไดเร็กทอรีระบบไฟล์ หากวิธีการแก้ปัญหาต้องการให้ถือว่าเป็นโมดูลและรวม__init__.pyไฟล์ (แม้แต่ไฟล์เปล่า ๆ ) ก็ใช้ได้ แต่การทำเช่นนั้นไม่เพียงพอที่จะแก้ปัญหา ฉันแชร์ไดเร็กทอรีนี้ระหว่างเครื่องและการนำเข้าแบบสัมพัทธ์ทำให้ฉันสามารถใช้รหัสเดียวกันได้ทุกที่และฉันมักจะใช้โน้ตบุ๊กในการสร้างต้นแบบอย่างรวดเร็วดังนั้นคำแนะนำที่เกี่ยวข้องกับการแฮ็คด้วยกันพา …