繁体   English   中英

如何使用python从兄弟的子目录导入

[英]How to import from a sibling's subdirectory using python

- folder container
     - folder build
         - build.py

     - folder uni
         - folder build-server
             - RemoteInterface.py

问题:如何从build.py导入RemoteInterface? 鉴于文件夹“build”和“build-server”没有init .py

我试过了 -

from ..uni.build_server.RemoteInterface import RemoteInterface 

# - shows  attempted relative import beyond top-level package
from ..uni.build-server.RemoteInterface import RemoteInterface 

#- shows syntax error at build-server (for the hyphen)

同样显示类似的错误:

from ...uni.build_server.RemoteInterface import RemoteInterface 


from ...uni.build-server.RemoteInterface import RemoteInterface 

期望从build.py成功导入RemoteInterface

目录树:

.
├── build
│   └── build.py
└── uni
    ├── build-server
    │   └── RemoteInterface.py
    └── buildserver
        └── RemoteInterface.py
  1. uni/build-server/RemoteInterface.py
RemoteInterface = "build-server"
  1. uni/buildserver/RemoteInterface.py
RemoteInterface = "buildserver"
  1. build/build.py
from __future__ import absolute_import
import sys
from os import path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from importlib import import_module
from uni.buildserver import RemoteInterface


import_module("uni.build-server.RemoteInterface")
_RemoteInterface = sys.modules["uni.build-server.RemoteInterface"]

print(RemoteInterface.RemoteInterface)
print(_RemoteInterface.RemoteInterface)
  1. 输出:
buildserver
build-server

注意 :尽量不要出现在目录名称中-

暂无
暂无

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

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