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

了解Python中的导入链

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

了解Python中的导入链

在两种情况下,您都将无法使导入工作。这是因为在一种情况下,您将pack.py作为主文件运行,而在另一种情况下,您将其作为软件包的一部分运行。

当您将其作为独立脚本运行时

python pack.py
,“
pack”目录将添加到PYTHONPATH中,这意味着您可以导入其中的任何模块。因此,
import util
将工作。

运行时

pythonmain.py
,将src目录添加到PYTHONPATH中。这意味着目录中的任何模块或软件包(
src
例如
pack
目录)现在都可以导入。因此
frompack import pack
。但是,
util.py
现在您需要访问
from pack importutil
。正如您所注意到的,您也可以
from . import util
从内部执行操作
pack.py

但是,您不能同时真正做到两者。要么

src/
是主目录,要么
src/pack
是。

一个明显但错误的解决方案是让main.py将

src/pack
目录添加到PYTHONPATH中。那会起作用,但这不是一个好主意。正确的方法是下定决心。是
src/pack
应该通过导入模块,
importpack
还是仅仅是带有一堆Python脚本的文件夹?决定!:-)

我认为在这种情况下,显然

src/pack
应该将其作为模块。因此,请像对待模块一样对待它,并确保它像模块一样可用。这样您
from pack importutil
甚至可以在
pack.py
作为主脚本运行时使用。

你是怎样做的?好吧,基本上,您可以将pack模块安装在站点程序包中,或者将

src
目录添加到PYTHONPATH中。最后一个就是您在开发过程中想要的。您可以使用手动进行
exportPYTHonPATH=<path>
,也可以让测试运行人员为您完成。您没有测试运行程序?好吧,你应该,但这是另一个问题。:)

要在不再进行开发后永久安装它,请查看Distribute。它包括一个测试运行程序。;)



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

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

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