简体   繁体   English

Python 尝试在没有已知父 package 的情况下进行相对导入

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

I have the following project directory.我有以下项目目录。 scriptA.py and scriptB.py are both separate micro-services, but share largely the same codebase. scriptA.pyscriptB.py都是独立的微服务,但在很大程度上共享相同的代码库。

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

  scripts/
    import.py

  requirements.text
  README.md

I can run python apps/scriptA.py and python apps/scriptB.py just fine.我可以运行python apps/scriptA.pypython apps/scriptB.py就好了。 They both import models/db and models/Model(A|b) just fine.他们都可以导入models/dbmodels/Model(A|b)

However, when I run python scripts/import.py , which also tries to use models/db , I get the following: attempted relative import with no known parent package但是,当我运行python scripts/import.py时,它也尝试使用models/db ,我得到以下信息: attempted relative import with no known parent package

In scripts/import.py , I'm using the following relative import:scripts/import.py中,我使用以下相对导入:

from ..apps.models.db import setup_db

def main():
  print("Main")

if __name__ == "__main__":
  main()

scripts is separated from apps , because it just contains a bunch of scripts for importing data into my database. scriptsapps是分开的,因为它只包含一堆用于将数据导入我的数据库的脚本。 Whereas apps contains all the code to run my applications.apps包含运行我的应用程序的所有代码。

From your command, I assume you're in myproject directory while executing python apps/scriptA.py .根据您的命令,我假设您在执行python apps/scriptA.py时位于myproject目录中。 In that case, in import.py use:在这种情况下,在 import.py 中使用:

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

from db import setup_db

def main():
  print("Main")

if __name__ == "__main__":
  main()

Then you should run it normally.然后你应该正常运行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Python - 尝试在没有已知父包的情况下进行相对导入 - Python - attempted relative import with no known parent package 尝试在没有已知父项的情况下进行相对导入 package (python) - attempted relative import with no known parent package (python) python:尝试在没有已知父 package 的情况下进行相对导入 - python: attempted relative import with no known parent package Python ImportError:尝试在没有已知父包的情况下进行相对导入 - Python ImportError: attempted relative import with no known parent package Python:“ImportError:在没有已知父包的情况下尝试相对导入” - Python: “ImportError: attempted relative import with no known parent package” Python3 ImportError:尝试在没有已知父项的情况下进行相对导入 package - Python3 ImportError: attempted relative import with no known parent package Python:ImportError:尝试在没有已知父项的情况下进行相对导入 package - Python: ImportError: attempted relative import with no known parent package Python/Flask ImportError:尝试在没有已知父包的情况下进行相对导入 - Python/Flask ImportError: attempted relative import with no known parent package ImportError:尝试在没有已知父包的情况下进行相对导入 - Python - ImportError: attempted relative import with no known parent package - Python 尝试使用 vscode 在 anaconda(python 3.8.5)中没有已知父 package 的相对导入 - attempted relative import with no known parent package in anaconda(python 3.8.5) with vscode
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM