【发布时间】:2013-10-20 11:13:03
【问题描述】:
我用python的贴图写了一个简单的python包,我的包有目录结构:
pkg/
__init__.py
module1.py
subpackage/
__init__.py
module2.py
init.py 文件是空白的,module1.py 包含一个从 module2.py 导入内容的函数。我安装了包,我可以从 python 提示符调用 module1.py 中的函数:
import pkg.module1
我转到安装包的位置(/usr/lib/python2.7/dist-packages/pkg/)并压缩 pkg 目录:
zip -r pkg.zip pkg/
我尝试使用 zipimport 从 python 提示符访问模块:
import zipimport
importer = zipimport.zipimporter('pkg.zip')
importer.find_module('pkg')
# <zipimporter object "pkg.zip">
importer.load_module('pkg')
# <module 'pkg' from 'pkg.zip/pkg/__init__.pyc'>
importer.is_package('pkg')
# True
pkg = importer.load_module('pkg')
# trying to call a function in module 1 called fcn1
pkg.module1.fcn1()
#Traceback (most recent call last):
#File "<stdin>", line 1, in <module>
#AttributeError: 'module' object has no attribute 'module1'
pkg.module1
#Traceback (most recent call last):
#File "<stdin>", line 1, in <module>
#AttributeError: 'module' object has no attribute 'module1'
关于如何访问 module1 的任何想法?谢谢。
【问题讨论】:
-
为什么这被否决了?
-
如果您拨打
dir(pkg)可能会有所帮助,您会得到什么? -
我得到:['builtins', 'doc', 'file', 'name ', '包', '路径']
标签: python python-2.7 package