34
A
回答
17
我相信包总是会被加载。就我所知,你无法解决这个问题。因此,更改包或模块名称。文档:http://docs.python.org/tutorial/modules.html#the-module-search-path
10
实际上,这是可能的(此代码没有很好的测试,但似乎工作)。
文件foo.py
print "foo module loaded"
文件foo/__init__.py
print "foo package loaded"
文件test1.py
import foo
文件test2.py
import os, imp
def import_module(dir, name):
""" load a module (not a package) with a given name
from the specified directory
"""
for description in imp.get_suffixes():
(suffix, mode, type) = description
if not suffix.startswith('.py'): continue
abs_path = os.path.join(dir, name + suffix)
if not os.path.exists(abs_path): continue
fh = open(abs_path)
return imp.load_module(name, fh, abs_path, (description))
import_module('.', 'foo')
运行
$ python test1.py
foo package loaded
$ python test2.py
foo module loaded
7
也许你想你的类从foo.py
模块移动到__init__.py
。
这样,你就可以从包中导入,以及导入可选子包:
文件foo/__init__.py
:
class Bar(object):
...
文件mymodule.py
:
from foo import Bar
from foo.subfoo import ...
不过我希望有人对此方法进行仔细检查,并让我知道它是否正确或模块不应该是像那样使用。
+2
我想知道是否可以这样做。 – Parham
+2
Lennart Regebro在另一个答案中推荐它,所以它没关系:http://stackoverflow.com/a/17530651/992687 –
相关问题
- 1. 如何处理具有相同名称的傀儡模块?
- 2. 与现有模块具有相同名称的python模块名称
- 3. python:两个模块和类在不同的包下具有相同的名称
- 4. 具有相同名称的模块和包
- 5. Python:如何从具有相同名称的包中导入子模块?
- 6. Python:如何导入与子包具有相同名称的模块?
- 7. 具有模块和类具有相同的名称
- 8. 重新导入具有相同名称的不同python模块
- 9. 区分具有相同名称的Python模块/以不同名称安装?
- 10. mod_wsgi的:具有相同的名称导入Python模块
- 11. 具有相同名称的多个模块的Python项目
- 12. 具有相同名称的进口Python模块
- 13. Python导入两个具有相同类名称的模块
- 14. Python模块具有相同名称(即,在包中重新使用标准模块名称)
- 15. 如何处理具有相同名称的子节点?
- 16. 如何处理具有相同名称的多个Cookie?
- 17. 如何将Python模块导入与导入模块名称相同的包中?
- 18. 模块和参数具有相同的名称
- 19. Python:如何从两个模块中导入具有相同名称的类?
- 20. 进口Python模块时,有同级文件具有相同的名称
- 21. RequireJS:具有不同名称的相同模块
- 22. Objective-C如何处理具有相同属性名称的子类和超类?
- 23. 使IDE处理具有相同名称的所有变量
- 24. Linq2Sql:如何处理具有相同名称和不同架构名称的表格
- 25. 相机和图库具有相同的包名称
- 26. 导入时,包含具有相同名称的类的Python模块是如何工作的?
- 27. 流星如何处理具有相同名称但路径不同的文件
- 28. 如何在Spring中处理具有相同值但名称不同的按钮
- 29. 加载两个具有相同名称的Ruby模块/宝石
- 30. 解析处理OpenXML具有相同名称的多个元素
嗨,您能否为您的索赔提供参考?我没有看到文档链接中提供的任何内容,表示程序包将始终优先于模块加载。 – wim