如何在python中进行相对导入?
How to do relative imports in Python?想象一下这个目录结构:
我在编码 我尝试过 我到处搜索,但只发现" 编辑:我的所有 edit2:我之所以这么做,是因为sub2包含跨子包共享的类( 伊迪丝3:我要找的行为和PEP 366中描述的一样(谢谢约翰B) 每个人似乎都想告诉你应该做什么,而不仅仅是回答问题。 问题是,通过将mod1.py作为参数传递给解释器,您将模块作为"主"运行。 来自PEP 328:
在Python2.6中,他们添加了相对于主模块引用模块的能力。PEP 366描述了变化。 更新:根据NickCoghlan的说法,推荐的替代方法是使用-m开关运行包中的模块。
或者2或3可以使用: 只要你的肾盂里有一个 因此,您编写一个 以下是适合我的解决方案: 我以 这一问题发生在相对导入中的真正原因是相对导入通过使用模块的 因此,通过使用-m开关,可以向python提供包结构信息,通过这些信息,python可以成功地解析相对导入。 在进行相对导入时,我多次遇到此问题。而且,在阅读了所有之前的答案之后,我仍然无法在不需要将样板代码放入所有文件的情况下,以一种干净的方式解决它。(尽管有些评论真的很有帮助,多亏了@ncoghlan和@xiongchiamiov) 希望这能帮助那些正与进口问题作斗争的人,因为经历政治公众人物真的不好玩。 "guido将包内运行脚本视为反模式"(已拒绝)PEP-3122) 我花了这么多时间试图找到一个解决方案,阅读了栈溢出的相关文章,并对自己说:"一定有更好的方法!"好像没有。 100%解决:
导入设置/本地设置.py在app/main.py中: MY.PY:
我正在使用这段代码从路径导入模块,希望能有所帮助 用实例说明 注:所有
应用程序/软件包
应用程序/软件包
Me.Py
如果运行
所以 不幸的是,这是一个sys.path黑客,但它工作得很好。 我在另一层遇到了这个问题:我已经有了一个指定名称的模块,但它是错误的模块。 我想做的是如下(我工作的模块是模块3):
请注意,我已经安装了mymodule,但在我的安装中没有"mymodule1" 我会得到一个importError,因为它试图从我安装的模块导入。 我尝试执行sys.path.append,但没有成功。工作的是sys.path.insert
真是一个黑客,但一切都正常!所以请记住,如果您希望自己的决定覆盖其他路径,那么您需要使用sys.path.insert(0,pathname)使其工作!这对我来说是一个非常令人沮丧的症结,很多人都说要在sys.path中使用"append"函数,但是如果已经定义了一个模块,这就行不通了(我发现它的行为非常奇怪)。 让我把这个放在这里,作为我自己的参考。我知道这不是一个好的python代码,但是我需要一个脚本来完成我正在进行的项目,我想把这个脚本放到一个
正如@evgenisegev在对op的注释中所说,您可以从
这是从这个答案中得出的。 看看http://docs.python.org/whatsnew/2.5.html pep-328-absolute-and-relative-imports。你可以做到
来自python文档,
除约翰B所说的之外,似乎设置 我也有同样的问题,无论是PEP 328还是366都不能完全解决这个问题,因为在一天结束之前,我都需要把包的头包含在 我还应该提到,我没有找到如何格式化应该进入这些变量的字符串。是 我发现将"pythonpath"环境变量设置到顶部文件夹更容易:
然后:
当然,Python是"全球性的",但它还没有给我带来麻烦。 假设您在顶层运行,然后在
而不是
|
相关内容
-
如何在安装过程中部署DevExpress控件
如何在安装过程中部署DevExpress控件,控件,文件,本文目录如何...
-
金蝶商贸版导入凭证|金蝶财务软件怎么导入凭证?
金蝶商贸版导入凭证|金蝶财务软件怎么导入凭证?,,1.金蝶财务软...
-
XY苹果助手如何导入壁纸
XY苹果助手如何导入壁纸,壁纸, ...
-
电脑字体导入不了|电脑字体导入不了怎么回事
电脑字体导入不了|电脑字体导入不了怎么回事,,电脑字体导入不...
-
金蝶套打格式如何导入|金蝶软件单据套打格式打
金蝶套打格式如何导入|金蝶软件单据套打格式打印设置步骤,,1....
-
草图大师快捷键导入|草图大师视图快捷键
草图大师快捷键导入|草图大师视图快捷键,,1. 草图大师视图快捷...
-
如何在电脑上抽数字|怎么用电脑随机抽数字
如何在电脑上抽数字|怎么用电脑随机抽数字,,怎么用电脑随机抽...
-
如何在电脑搜索软件|如何在电脑搜索软件安装
如何在电脑搜索软件|如何在电脑搜索软件安装,,如何在电脑搜索...
-
电脑导入图片|电脑导入图片到手机
电脑导入图片|电脑导入图片到手机,,电脑导入图片到手机以华为P...
-
电脑系统设置如何关闭广告|如何在电脑上设置关
电脑系统设置如何关闭广告|如何在电脑上设置关闭广告,,1. 如何...
-
如何在wps圆圈里打勾
如何在wps圆圈里打勾,WPS教程,1.WPS里面怎么在圆圈里打钩然后...
-
如何在电脑上抠图|电脑上怎么抠图
如何在电脑上抠图|电脑上怎么抠图,,电脑上怎么抠图1.打开ps软...
-
手机qq导入照片到电脑上|手机qq导入照片到电脑
手机qq导入照片到电脑上|手机qq导入照片到电脑上不显示,,手机q...
-
如何在电脑中批量修改相片像素|如何在电脑中批
如何在电脑中批量修改相片像素|如何在电脑中批量修改相片像...
-
git设置编码|git语言设置
git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接...