J'utilise setup.py
pour créer un paquet foo
et ensuite l'installer localement avec pip install .
dans un environnement virtuel (python 2.7). Dans l'interpréteur python env virtuel, je peux importer foo
, mais python semble penser que foo
est plus un module qu'un paquet python (le type de paquet avec le fichier __init__.py
) parce que lorsque j'essaie d'appeler foo
sous-structure, foo.bar
, cela me donne une erreur à propos du module qui n'a pas l'attribut bar
.Python pense que mon package setup.py est un module pas un paquet python
Par exemple, je peux importer foo
sans problème, mais si je tente et appeler quelque chose de foo
, il échoue avec le message d'erreur:
>>> import foo
>>> foo.bar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'bar'
est ici la structure du dossier:
foo/
foo/
__init__.py
bar.py
setup.py
Voici mon fichier setup.py
:
from setuptools import setup
setup(
url='none',
author='loren',
name='foo',
version='1.0.0',
packages=['foo'],
)
Inte en reposant, je peux importer la barre avec from foo import bar
et non seulement cela fonctionne mais il fixe alors mon erreur ci-dessus et d'autres appels à foo.bar
renvoyant le module bar
, mais ce n'est pas très utile pour moi.
Que dois-je faire pour obtenir
>>> import foo
>>> foo.bar
pour fonctionner correctement?
Quel est le contenu du fichier '__init __. Py'? – jwodder
Le fichier '__init __. Py' est vide – user2859458