2016-05-06 6 views
0

Ich lerne ein Paket in Python zu erstellen. Das ist die Struktur der PaketeWarum ist mein selbst erstelltes Paket nicht in Site-Paketen?

funniest 
    -- funniest 
     -- __init__.py 
    -- setup.py 

init Py

def joke(): 
    return (u'Wenn ist das Nunst\u00fcck git und Slotermeyer? Ja! ... ' 
     u'Beiherhund das Oder die Flipperwaldt gersput.') 

setup.py

from setuptools import setup 

setup(name='funniest', 
     version='0.1', 
     description='The funniest joke in the world', 
     url='http://github.com/storborg/funniest', 
     author='Flying Circus', 
     author_email='[email protected]', 
     license='EXXX', 
     packages=['funniest'], 
     zip_safe=False) 

Dann habe ich in Venv

source bin/activate 
python setup.py develop 
python setup.py install 

Dann wollte ich das Paket in meinem lokalen Python-Skript in der Venv verwenden

from funniest import * // I get error here. ImportError: No module named funniest 

aber das Paket nicht im Skript importiert werden. Also ging ich und überprüfte die Site-Pakete, sah ich funniest.egg-link und alle Importe scheitern. Kann jemand erklären, warum es nicht im Aufstellungsort-Paket ist oder wie man das 'lustigste' Paket lokal verwendbar macht?

Update: Ich habe auch versucht, die folgenden aber mein Paket wird in der Ausgabe

yolk -l 
+0

stellen Sie sicher, dass Sie die gleiche Python-Umgebung verwenden, und können Sie weitere Details über "alle Importe fehlschlagen" teilen? – Guoliang

+0

@Guoliang Ich benutze die gleiche Umgebung. Ich habe die Fehlermeldung aktualisiert, die ich erhalte. – user1429322

Antwort

1

Ich habe ein Projekt mit dem gleichen sturcuture wie Ihr Projekt nicht aufgeführt:

python setup.py develop 
...Processing dependencies for funniest==0.1 
...Finished processing dependencies for funniest==0.1 

ich doppelt geprüft funniest.egg-link in Site-Pakete, es zeigt auf projects/funniest, sieht gut aus. dann ich eine pip list tat, ist lustigsten in der Liste

funniest (0.1) 

ich es genau wie erwartet dann python mit der gleichen Python-Umgebung zu starten, funktioniert:

(venv) \projects\funniest>python 
>>> from funniest import joke 
>>> joke.joke() 
hi 

ich mit einem Witz erstellt joke.py() Funciton unter Projekte/am lustigsten/am lustigsten.

Bitte überprüfen Sie, dass Sie die gleiche Python-Umgebung verwenden. ich hoffe es hilft.