栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python从更高级别的包中导入模块

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python从更高级别的包中导入模块

如果您

app/server.py
以脚本运行,
app
则不会将的父目录添加到中
sys.path()
。该
app
目录本身,而不是被添加(而不是作为一个包,但作为进口搜索路径)。

您有4个选择:

  1. 移动
    server.py
    所述的
    app
    包(它旁边)
  2. app
    在仅运行的旁边添加一个新的脚本文件:

    from app import server

    server.main()

  3. 使用

    -m
    switch选项将 模块 作为主要入口点运行:

    python -m app.server
  4. 将的父目录添加

    server.py
    sys.path

    import os.path

    import sys

    parent = os.path.dirname(os.path.dirname(os.path.abspath(file)))
    sys.path.insert(0, parent)

但是,这最后一个选项可能会带来更多问题。现在两个

app
包和包含在模块
app
封装上
sys.path
。您可以同时导入
app.server
server
,Python将把它们视为两个独立的模块,每个模块在中都有自己的条目
sys.modules
,并具有各自的全局变量的单独副本。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号