python导入模块路径_Python导入,路径,目录和模块

首先让我说我已经对过去一周的过程进行了广泛的研究,但还没有找到这些问题的实际答案 – 只是一些模糊的答案并没有真正解释正在发生的事情.如果这只是因为我错过了我想要的东西,我很抱歉 – 请指出我正确的方向.

我的目录结构是:

TestProject/

runtest*

testpackage/

__init__.py

testmod.py

testmod2.py

testsubs/

testsubmod.py

几个笔记:

>我在Ubuntu上使用python2.7

>我正在测试bpython

>我正在从特定目录运行bpython来测试导入行为的方式

>我正在尝试遵循最佳做法.

>此软件包未安装,它位于随机开发目录中

>此目录不在pythonpath中

>我在包目录中有一个init.py.

>嵌套目录中没有init.py文件

> init.py文件为空

> testpackage / testmod.py包含TestModClass

> testpackage / testsubs / testsubmod.py包含TestSubModClass

我观察到的事情:

>当我从TestProject / import testpackage运行bpython时

>这不会导入testpackage.testmod

>我根本无法访问testpackage.testmod

>当我从TestProject / import testpackage.testmod运行bpython失败时

>当我从testProject运行bpython /从testpackage导入testmod工作

>我可以向init.py添加代码以显式导入testmod.py,但不能testubs / testmod.py

>我不认为这是正确的方法,如果用户不想导入该模块怎么办?

>从testmod.py我可以导入testmod2,但不能导入testpackage.testmod2

>这样做很好,我可以使用STL或扭曲的名称(例如testpackage.logging)命名我自己的模块而不会导致错误(很糟糕的是必须将自己的模块命名为客户日志,而不仅仅是mypackage .logging)

问题是:

> python与包装上的进口有什么不同吗? pythonpath中存在的模块比尝试从当前目录导入时要多?

>为什么不导入testpackage让我访问testpackage.testmod?当我导入操作系统时,我可以访问os.path(etc).

>使用包,我应该坚持在基目录中使用单个init.py,还是应该将它们嵌套在后续目录中?

>如何导入指定包名称的模块? I.E.从testmod.py,我想导入testpackage.testmod2而不仅仅是testmod2.

>从subsubs目录导入子模块的正确方法是什么?

>我看到的唯一解决方案是将该目录从init.py附加到pythonpath,但我不知道这是否正确.

提前致谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值