2017-08-29 6 views
-1

Comment importer un sous-dossier de projet afin qu'il soit disponible une fois qu'un projet a été importé?Comment importer un sous-dossier de projet afin qu'il soit disponible une fois le projet installé importé?

Par exemple comment importer le contenu de project.tools de sorte qu'après l'importation du projet en utilisant import project, project.tools.common.function() est disponible?

project 
| 
|--tools 
| |--__init__.py 
| \--common.py 
| 
|--__init__.py 
|--core.py 
\--cli.py 

J'ai essayé ce qui suit:

  1. from . import tools dans project/__init__.py et from . import * dans project/tools/__init.py qui a abouti à: ImportError: cannot import name 'tools'.
  2. from .tools import * dans project/__init__.py et from . import * dans project/tools/__init.py qui a abouti à: ModuleNotFoundError: No module named 'project.tools'.
  3. from .tools import common dans project/__init__.py et from . import * dans project/tools/__init.py qui a abouti à: ModuleNotFoundError: No module named 'project.tools'.
+0

Copie possible de [Importer un fichier d'un sous-répertoire?] (Https://stackoverflow.com/questions/1260792/import-a-file-from-a-subdirectory) – durduliu2009

+0

Non, ceci concerne un projet installable (qui peut être importé en utilisant 'import project') – Greg

Répondre

0

Utilisez import tools dans votre script .py directement. Utilisez ensuite tools.common.function() dans l'appel de fonction.

Lorsque vous placez init .py dans votre dossier, le dossier devient appelable. Vous pouvez donc importer ce dossier et ses scripts directement dans vos scripts.

-1

cela résoudra votre problème

import tools.common as COMMON 
COMMON.function() 
+0

Résultat: 'ModuleNotFoundError: Aucun module nommé' tools'' – Greg

+0

dans quel fichier avez-vous mis mon code? ceci devrait être mis dans votre script principal (core ou cli.py) – durduliu2009

+0

'project/__ init __. py' – Greg