2010-05-22 10 views
5

importieren, wenn ich http://github.com/joshthecoder/tweepy-examples verwenden,wie eine 'zip' Datei auf meinem Py

i finden:

import tweepy 

im appengine \ oauth_example \ handlers.py

aber ich kann py ‚Datei, mit Ausnahme einer tweepy.zip Datei‚t eine tweepy Datei oder tweepy finden‘,

ich glaube nicht, das ist richtig, cauz ich nie eine Zip-Datei importieren,

Das finde ich in app.py:

import sys 
sys.path.insert(0, 'tweepy.zip') 

warum?

wie eine Zip-Datei zu importieren ..

dank

aktualisiert

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' 

der Fehler ist: jetzt

> "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 

Aktualisiertvor 2

es in Ordnung ist,

die Fehler der Grund ist: i b.rar umbenennen zu b.zip

Antwort

5

Der Name der ZIP-Datei ist irrelevant bei der Suche nach Modulen - dies ermöglicht Ihnen, Versionsnummern in den Dateinamen einzuschließen, z. B. my_b_package.1.2.3.zip.

Um aus einer Zip-Datei importieren zu können, müssen Sie die gesamte Paketstruktur darin replizieren. In diesem Fall benötigen Sie ein Paket b mit den Modulen __init__.py und c.py.

D.h.:

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

Sie importieren z IP-Dateien, fügen Sie sie zu sys.path, so dass Sie Module in ihnen importieren können. sys.path ist eine Liste, und als solche die normalen Liste Methoden/Operationen (z. B. .append()) alle daran arbeiten.

+0

, aber ich kann keine Module in ihnen importieren, warum? – zjm1126

+0

Sie können gezippte Dateien unabhängig importieren. Zum Beispiel habe ich eine gezippte Datei mit der Erweiterung '.pyc', die'__main__py' und den ganzen Rest meines Codes enthält. Ich kann es dann als eigenständiges lauffähiges Modul verwenden, aber auch mit 'zipimport' importieren, wenn ich andere Einstiegspunkte haben möchte. –