我的主项目文件夹中有以下目录结构。你知道吗
|ALL-IN-ONE
|demo
|__init__.py
|__main__.py
|models
|grpc
|allinone_server.py
我想从阿利诺进口_服务器.py在main.py中定义的一个函数,称为images\u demo。我试过了
from demo.__main__ import images_demo
它不起作用。如何导入?我尝试导入的函数位于demo目录中的main.py中。我正试图从文件中导入它_服务器.py在grpc中。我想我已经把问题说清楚了。 这是这项工程的整棵树
├── demo
│ ├── __init__.py
│ ├── __main__.py
│ └── __pycache__
│ ├── __init__.cpython-36.pyc
│ └── main.cpython-36.pyc
├── description
├── environment.yml
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── fsmonitor-watchman.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ ├── pre-receive.sample
│ └── update.sample
├── imgs
│ └── 44.jpg
├── info
│ └── exclude
├── __init__.py
├── loggers
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-36.pyc
├── models
│ ├── adience_large1.h5
│ ├── adience_small1.h5
│ ├── AgeModel.json
│ ├── detection_age_gender_large1.h5
│ ├── detection_age_gender_small1.h5
│ ├── detection_age_gender_smile_large1.h5
│ ├── detection_age_gender_smile_small1.h5
│ ├── detection_age_large1.h5
│ ├── detection_age_small1.h5
│ ├── detection_large1.h5
│ ├── detection_small1.h5
│ ├── grpc
│ │ ├── adele_2016.jpg
│ │ ├── allinone_client.py
│ │ ├── all_in_one_pb2_grpc.py
│ │ ├── all_in_one_pb2.py
│ │ ├── all_in_one.proto
│ │ ├── allinone_server.py
│ │ ├── benedict_cumberbatch_2014.png
│ │ ├── cat.png
│ │ ├── classroom_in_tanzania.jpg
│ │ ├── decoded1.py
│ │ ├── decoded.py
│ │ ├── elon_musk_2015.jpg
│ │ ├── laos.jpg
│ │ ├── model_face.jpg
│ │ ├── __pycache__
│ │ │ ├── all_in_one_pb2.cpython-36.pyc
│ │ │ ├── all_in_one_pb2_grpc.cpython-36.pyc
│ │ │ └── decoded.cpython-36.pyc
│ │ ├── sophia.jpg
│ │ ├── test
│ │ │ ├── __init__.py
│ │ │ ├── __pycache__
│ │ │ │ └── __init__.cpython-36.pyc
│ │ │ └── test_images
│ │ │ ├── adele_2016.jpg
│ │ │ ├── benedict_cumberbatch_2014.png
│ │ │ ├── classroom_in_tanzania.jpg
│ │ │ ├── elon_musk_2015.jpg
│ │ │ ├── __init__.py
│ │ │ ├── laos.jpg
│ │ │ ├── model_face.jpg
│ │ │ ├── sophia.jpg
│ │ │ ├── waaah.jpg
│ │ │ ├── woman.jpg
│ │ │ └── zebra_stripes.jpg
│ │ ├── waaah.jpg
│ │ ├── woman.jpg
│ │ └── zebra_stripes.jpg
不能直接从其他文件夹导入函数,为此,必须使用以下方法:
另一个步骤是将
__main__
重命名为main
。你知道吗下面就是一个对我有效的例子:
树:
主.py:
调用文件(
allinone_server.py
):所以你提到主.py,但在目录结构中也有uuu main\uuuuy.py。我假设你的目录中主.py而不是main.py。你知道吗
要从包中的级别向上导入,请以句点开始导入。 要只导入一个函数,可以使用
from .main import images_demo
现在,让我们先说主.py在grpc/和allinone一起_服务器.py,然后我们将其移动到不同的目录,并查看导入是如何更改的。你知道吗
如果它在grpc/
from .main import images_demo
如果它在模型中/
from ..main import images_demo
如果它是一体的
from ...main import images_demo
如果它在演示中
from ...__demo.main import images_demo
每增加一个句点,就在层次结构中向上提升一个级别,然后在目标路径中使用下一个级别的名称,直到到达您想要的位置。你知道吗
现在假设您想导入整个主.py. 如果它在grpc/
from . import main
如果它在模型中/
from .. import main
如果是一体机/
from ... import main
如果它在演示中
from ...__demo import main
最后,向上移动一个级别的点表示法只在使用它的文件在一个包中时才起作用,因此如果在顶层,您在这个包之外的范围内启动程序,然后使用
from __ALL-IN-ONE.models.grpc import allinone_server
,这将很好地工作但是,如果您直接运行
allinone_server.py
,那么它将无法导入它上面的任何内容,因为它不是作为包的一部分导入的。试试看,如果需要更好的解释请告诉我。你知道吗祝你好运!你知道吗
相关问题 更多 >
编程相关推荐