簡體   English   中英

Python 嘗試在沒有已知父 package 的情況下進行相對導入

[英]Python attempted relative import with no known parent package

我有以下項目目錄。 scriptA.pyscriptB.py都是獨立的微服務,但在很大程度上共享相同的代碼庫。

myproject
  apps/
     models/
       db.py
       ModelA.py
       ModelB.py
     scriptA.py
     scriptB.py

  scripts/
    import.py

  requirements.text
  README.md

我可以運行python apps/scriptA.pypython apps/scriptB.py就好了。 他們都可以導入models/dbmodels/Model(A|b)

但是,當我運行python scripts/import.py時,它也嘗試使用models/db ,我得到以下信息: attempted relative import with no known parent package

scripts/import.py中,我使用以下相對導入:

from ..apps.models.db import setup_db

def main():
  print("Main")

if __name__ == "__main__":
  main()

scriptsapps是分開的,因為它只包含一堆用於將數據導入我的數據庫的腳本。 apps包含運行我的應用程序的所有代碼。

根據您的命令,我假設您在執行python apps/scriptA.py時位於myproject目錄中。 在這種情況下,在 import.py 中使用:

import sys,os
sys.path.append('apps/models)

from db import setup_db

def main():
  print("Main")

if __name__ == "__main__":
  main()

然后你應該正常運行它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM