相关疑难解决方法(0)

从相对路径导入模块

如何根据相对路径导入Python模块?

例如,如果dirFoo包含Foo.pydirBar,和dirBar包含Bar.py,我怎么导入Bar.pyFoo.py

这是一个直观的表示:

dirFoo\
    Foo.py
    dirBar\
        Bar.py
Run Code Online (Sandbox Code Playgroud)

Foo希望包括Bar,但重组文件夹层次结构不是一种选择.

python relative-path python-import

749
推荐指数
16
解决办法
88万
查看次数

兄弟姐妹包进口

我已经尝试阅读有关兄弟进口甚至 包文档的问题,但我还没有找到答案.

具有以下结构:

??? LICENSE.md
??? README.md
??? api
?   ??? __init__.py
?   ??? api.py
?   ??? api_key.py
??? examples
?   ??? __init__.py
?   ??? example_one.py
?   ??? example_two.py
??? tests
?   ??? __init__.py
?   ??? test_one.py
Run Code Online (Sandbox Code Playgroud)

如何在脚本 examplestests目录从导入 api模块,并可以从命令行运行?

此外,我想避免sys.path.insert每个文件的丑陋黑客.当然这可以在Python中完成,对吧?

python packages siblings python-import

149
推荐指数
7
解决办法
7万
查看次数

来自兄弟文件夹的Python导入模块

我已经经历了许多Python相关的导入问题,但我无法理解这个问题/让它工作......

我的目录结构是:

Driver.py

A/
      Account.py
      __init__.py

B/
      Test.py
      __init__.py
Run Code Online (Sandbox Code Playgroud)

====================

Driver.py

from B import Test
Run Code Online (Sandbox Code Playgroud)

=========

Account.py

class Account:
def __init__(self):
    self.money = 0
Run Code Online (Sandbox Code Playgroud)

====================

Test.py

from ..A import Account
Run Code Online (Sandbox Code Playgroud)

==================

当我试图跑

python Driver.py

我收到了错误

Traceback(最近一次调用最后一次):

来自B进口测试

Driver.py从..A导入帐户输入"B/Test.py",第1行

ValueError:尝试相对导入超出toplevel包

python import module relative-path

35
推荐指数
2
解决办法
2万
查看次数