如何将'zip'文件导入我的.py文件

11 投票
2 回答
25171 浏览
提问于 2025-04-15 23:01

当我使用 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__.pyc.py 这两个模块。

也就是说:

b.zip
|
| -- b <dir>
     | -- __init__.py
     | -- c.py

撰写回答