如何将'zip'文件导入我的.py文件
当我使用 http://github.com/joshthecoder/tweepy-examples 的时候,
我发现:
import tweepy
在 appengine\oauth_example\handlers.py 文件里
但是我找不到 tweepy 的文件或者 tweepy 的 'py' 文件,除了一个 tweepy.zip 文件,
我觉得这不对,因为我从来没有导入过 zip 文件,
我在 app.py 里发现了这个:
import sys
sys.path.insert(0, 'tweepy.zip')
为什么会这样?
怎么导入一个 zip 文件呢……
谢谢
更新
a.py :
import sys
sys.path.insert(0, 'b.zip')
import b
print b
b.zip:
b file
|-----__init__.py
|-----c.py
c.py:
cc='ccccc'
错误是:
> "D:\Python25\pythonw.exe" "D:\zjm_code\a.py"
Traceback (most recent call last):
File "D:\zjm_code\a.py", line 9, in <module>
import b
ImportError: No module named b
更新2
现在没问题了,
错误的原因是:我把 b.rar 重命名成了 b.zip
2 个回答
4
你不能直接导入zip文件,而是要把它们添加到sys.path
中,这样你才能导入里面的模块。sys.path
其实是一个列表,所以你可以用普通的列表操作方法,比如.append()
,来对它进行操作。
12
压缩文件的名字在搜索模块时并不重要,这样你就可以在文件名中包含版本号,比如 my_b_package.1.2.3.zip
。
要从压缩文件中导入内容,你需要在里面复制完整的包结构。也就是说,你需要一个包 b
,里面要有 __init__.py
和 c.py
这两个模块。
也就是说:
b.zip
|
| -- b <dir>
| -- __init__.py
| -- c.py