在PYTHONPATH元素顶部导入两个具有相同名称的模块

修剪

我将缩短表示法。我有

PYTHONPATH=/path1/dir1:/path2/dir2

结构:

/path1/dir1/
    README
    muggle.py
    ...
    utils/

/path2/dir2/
    __init__.py
    utils/
        __init__.py
        pkg2/
            __init__.py
            mod2.py

dir1有一个模块utils,但本身不是一个包:没有,__init__.py
dir2有一个模块utils,并且确实__init__.py

我的样板代码(之前dir1是环境的一部分)具有dir2以下形式的导入:

from utils.pkg2.mod2 import func2

问题在于,我现在正在修改此代码以调用从utilsin导入的函数dir1我无法改变那部分环境。

我该怎么做才能使代码适合该dir2/utils模块?不幸的是,这还需要适应Python 2.6.6及更高版本。

我在SO和其他地方搜索了现有的问题;我找到的所有答案都取决于我没有的某些程序包“句柄”。

威姆

此导入语句不正确:

from utils.pkg2.mod2 import func2

如果它能正常工作,那就是依靠当前工作目录,Python 2.x中的隐式相对导入或手动修剪的PYTHONPATH/进行解析sys.path

PEP8表示的导入类型为:

绝对不要使用隐式相对导入,并且在Python 3中已将其删除。

那么该怎么做呢?sys.path应该增加顶层目录,而不是软件包内目录,即:

PYTHONPATH=/path1/dir1:/path2

并更改导入,如下所示:

from dir2.utils.pkg2.mod2 import func2

现在,该子包 已从顶级dir2.utils命名utils

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

IronPython导入两个具有相同名称的枚举

来自分类Dev

关于导入两个具有相同名称的类的问题-android.graphics.Color

来自分类Dev

Specman为什么不能导入两个具有相同名称的文件?

来自分类Dev

如何在不同模块中使用两个具有相同名称的AngularJS服务?

来自分类Dev

'pip install'具有相同名称空间包的两个模块

来自分类Dev

声明两个具有相同名称的变量

来自分类Dev

具有相同名称的两个输入

来自分类Dev

来自两个命名空间的具有相同名称的属性的元素

来自分类Dev

XSD具有相同名称但属性值不同的两个元素

来自分类Dev

解析具有相同名称的两个元素android

来自分类Dev

解析两个具有相同名称的元素-Pull Parser

来自分类Dev

Ruby-包括两个模块,两个模块都具有一个具有相同名称的子模块

来自分类Dev

Maven:如何在两个不同的模块下放置一个具有相同名称的模块?

来自分类Dev

为什么在Gatsby的两种不同布局上无法具有两个StaticQuery元素的相同名称?

来自分类Dev

AngularJS-具有相同名称但在不同模块中的两个指令的预期行为是什么?

来自分类Dev

AngularJS两个指令具有相同的模块名称

来自分类Dev

AngularJS两个指令具有相同的模块名称

来自分类Dev

是否可以创建具有两个具有相同名称的属性的类型?

来自分类Dev

XML模式在两种不同情况下具有两个具有相同名称的元素类型

来自分类Dev

是否可以有两个具有相同名称的ConnectionString?

来自分类Dev

是否可以有两个具有相同名称的ConnectionString?

来自分类Dev

是否可以在单独的查询中存在两个具有相同名称的临时表

来自分类Dev

尽管使用@Primary,但两个具有相同名称的bean仍会导致ConflictingBeanDefinitionException

来自分类Dev

在Gridview中显示两个具有相同名称的列

来自分类Dev

具有相同名称的两个路由段的EmberJs路由器-可能吗?

来自分类Dev

无法解决SVN冲突-存储库中两个具有相同名称的文件

来自分类Dev

具有相同名称的SQL Server的两个实例?

来自分类Dev

想要自动挂载两个具有相同名称的FAT闪存驱动器

来自分类Dev

两个具有相同名称的HTTP GET参数时的行为

Related 相关文章

  1. 1

    IronPython导入两个具有相同名称的枚举

  2. 2

    关于导入两个具有相同名称的类的问题-android.graphics.Color

  3. 3

    Specman为什么不能导入两个具有相同名称的文件?

  4. 4

    如何在不同模块中使用两个具有相同名称的AngularJS服务?

  5. 5

    'pip install'具有相同名称空间包的两个模块

  6. 6

    声明两个具有相同名称的变量

  7. 7

    具有相同名称的两个输入

  8. 8

    来自两个命名空间的具有相同名称的属性的元素

  9. 9

    XSD具有相同名称但属性值不同的两个元素

  10. 10

    解析具有相同名称的两个元素android

  11. 11

    解析两个具有相同名称的元素-Pull Parser

  12. 12

    Ruby-包括两个模块,两个模块都具有一个具有相同名称的子模块

  13. 13

    Maven:如何在两个不同的模块下放置一个具有相同名称的模块?

  14. 14

    为什么在Gatsby的两种不同布局上无法具有两个StaticQuery元素的相同名称?

  15. 15

    AngularJS-具有相同名称但在不同模块中的两个指令的预期行为是什么?

  16. 16

    AngularJS两个指令具有相同的模块名称

  17. 17

    AngularJS两个指令具有相同的模块名称

  18. 18

    是否可以创建具有两个具有相同名称的属性的类型?

  19. 19

    XML模式在两种不同情况下具有两个具有相同名称的元素类型

  20. 20

    是否可以有两个具有相同名称的ConnectionString?

  21. 21

    是否可以有两个具有相同名称的ConnectionString?

  22. 22

    是否可以在单独的查询中存在两个具有相同名称的临时表

  23. 23

    尽管使用@Primary,但两个具有相同名称的bean仍会导致ConflictingBeanDefinitionException

  24. 24

    在Gridview中显示两个具有相同名称的列

  25. 25

    具有相同名称的两个路由段的EmberJs路由器-可能吗?

  26. 26

    无法解决SVN冲突-存储库中两个具有相同名称的文件

  27. 27

    具有相同名称的SQL Server的两个实例?

  28. 28

    想要自动挂载两个具有相同名称的FAT闪存驱动器

  29. 29

    两个具有相同名称的HTTP GET参数时的行为

热门标签

归档