繁体   English   中英

Python 分包 - 绝对导入失败

[英]Python Subpackages - Absolute Import Failure

这个问题在不同的情况下被问过,但我仍然无法获得成功的绝对导入。

我有这个目录结构

21:48:07$ tree
start_dir
└── top_package
    ├── README.md
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-37.pyc
    │   └── secrets.cpython-37.pyc
    ├── subpackage1
    │   ├── __init__.py
    │   └── test.py
    ├── requirements.txt
    ├── secrets.py
    └── subpackage2
        └── __init__.py
  

我想做的就是从test.py能够从秘密中导入。 下面是 test.py 的内容:

# import top_package # ImportError: No module named top_package
# from top_package import secrets # ImportError: No module named top_package

import top_package.secrets # ImportError: No module named top_package

这些都没有奏效。 我已经阅读了多页关于在顶级 package 中拥有多个子包的信息,但仍然没有骰子。

这仅仅是因为我试图通过运行python test.py而不是从 start_dir 调用它来直接执行文件吗? 如果是这样,开发和解决此问题的最佳方法是什么?

目标:我希望能够从test.py绝对import secrets 如果可能的话,我不想对 site-packages 或setup.py做任何事情。 我希望能够运行python test.py并具有以下行: import top_package not give a ImportError no module found 请告知最佳行动方案。

因此,您创建了top_package并希望将其import系统中的任何位置。 您可以通过将 package 文件夹复制到您环境的site-packages文件夹来执行此操作。 这是 python 在导入包时会查看的路径。

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM