ich setup.py
bin mit einem Paket foo
zu erstellen und es dann mit pip install .
in einem frischen virtuellen env lokalen Installation (Python 2.7). Im Python-Interpreter des virtuellen Env bin ich in der Lage, foo
zu importieren, aber Python scheint zu denken, foo
ist mehr ein Modul als ein Python-Paket (die Paketart mit der Datei __init__.py
), weil, wenn ich versuche, 's Unterstruktur aufzurufen, es gibt mir einen Fehler über das Modul, das das bar
Attribut nicht hat.Python denkt, dass meine setup.py Paket erstellt ist ein Modul, kein Python-Paket
Zum Beispiel kann ich foo
ohne Probleme importieren, aber wenn ich versuche, und alles abblasen foo
, schlägt es mit der Fehlermeldung:
>>> import foo
>>> foo.bar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'bar'
Hier ist die Ordnerstruktur:
foo/
foo/
__init__.py
bar.py
setup.py
Hier ist mein setup.py
Datei:
from setuptools import setup
setup(
url='none',
author='loren',
name='foo',
version='1.0.0',
packages=['foo'],
)
Inte Ruhig kann ich Bar mit from foo import bar
importieren und das funktioniert nicht nur aber es behebt dann meinen obigen Fehler und weitere Aufrufe an foo.bar
, die das bar
Modul zurückgeben, aber das ist nicht sehr nützlich für mich.
Was muss ich tun, um zu bekommen
>>> import foo
>>> foo.bar
richtig funktioniert?
Was ist der Inhalt der '__init __. Py' Datei? – jwodder
Die Datei '__init __. Py' ist leer – user2859458