ฉันพยายามติดตามPEP 328ด้วยโครงสร้างไดเรกทอรีต่อไปนี้:
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
ในcore_test.py
ฉันมีคำสั่งการนำเข้าต่อไปนี้
from ..components.core import GameLoopEvents
อย่างไรก็ตามเมื่อฉันเรียกใช้ฉันได้รับข้อผิดพลาดต่อไปนี้:
tests$ python core_test.py
Traceback (most recent call last):
File "core_test.py", line 3, in <module>
from ..components.core import GameLoopEvents
ValueError: Attempted relative import in non-package
การค้นหารอบ ๆ ฉันพบ " เส้นทางสัมพัทธ์ไม่ทำงานแม้จะมี __init__.py " และ " นำเข้าโมดูลจากเส้นทางสัมพัทธ์ " แต่ก็ไม่ได้ช่วยอะไร
มีอะไรฉันหายไปไหม
no module named myimports.foo
เมื่อฉันเรียกใช้พวกเขา
cd
เข้าPyImports
และการทำงานpython -m unittest tests.test_abs
เช่น
unittest
โครงการที่หลากหลายดังนั้นฉันจึงเขียนโครงการตัวอย่างที่ค่อนข้างละเอียดซึ่งครอบคลุมการทำรังอย่างลึกซึ้งของโมดูลการนำเข้าแบบสัมพัทธ์และการนำเข้าสัมบูรณ์ แพคเกจรวมถึงการนำเข้าระดับเดียว, คู่และระดับแพคเกจ ช่วยเคลียร์สิ่งที่ถูกต้องสำหรับฉัน!