2016-10-08 2 views
0

Je viens de commencer à apprendre Python (2.7) et je suis confronté à un problème. J'utilise Windows 10.TypeError: les importations relatives nécessitent l'argument du paquet en python

J'ai créé un environnement virtuel (c: \ virtualenvs \ testenv) et l'ai activé. Le chemin d'accès au dossier de l'application est c: \ pyprojects \ pytest. Ce dossier a requirements.txt avec tous les paquets listés.

L'invite ressemble

(testenv) c:\pyprojects\pytest\pip install -r requirements.txt 

Il installe tous les paquets nécessaires avec succès sous testenv. Puis j'ai couru la commande suivante

(testenv) c:\pyprojects\pytest\python manage.py runserver 

et a obtenu les éléments suivants error--

Unhandled exception in thread started by <function wrapper at 0x03ABF8F0> 
Traceback (most recent call last): 

    File "C:\virtualenvs\testenv\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper 
    fn(*args, **kwargs) 
    File "C:\virtualenvs\testenv\lib\site-packages\django\core\management\commands\runserver.py", line 113, in inner_run 
    autoreload.raise_last_exception() 
    File "C:\virtualenvs\testenv\lib\site-packages\django\utils\autoreload.py", line 249, in raise_last_exception 
    six.reraise(*_exception) 
    File "C:\virtualenvs\testenv\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper 
    fn(*args, **kwargs) 
    File "C:\virtualenvs\testenv\lib\site-packages\django\__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "C:\virtualenvs\testenv\lib\site-packages\django\apps\registry.py", line 85, in populate 
    app_config = AppConfig.create(entry) 
    File "C:\virtualenvs\testenv\lib\site-packages\django\apps\config.py", line 90, in create 
    module = import_module(entry) 
    File "c:\python27\Lib\importlib\__init__.py", line 30, in import_module 
    raise TypeError("relative imports require the 'package' argument") 
TypeError: relative imports require the 'package' argument 

Maintenant j'ai vérifié le fichier - C:. \ Python27 \ Lib \ __ importlib__init py et il dit

if name.startswith('.'): 
     if not package: 
      raise TypeError("relative imports require the 'package' argument") 
     level = 0 
     for character in name: 
      if character != '.': 
       break 
      level += 1 
     name = _resolve_name(name[level:], package, level) 
    __import__(name) 
    return sys.modules[name] 

Il n'y a aucun fichier dans mon dossier d'application spécialement settings.py qui commence par dot. Est-ce que mon dossier APP n'est pas inclus dans le chemin python principal? ou il me manque quelque chose.

Toute aide est fortement appréciée.

+0

Veuillez indiquer votre paramètre 'INSTALLED_APPS'. – knbk

Répondre

1

DJANGO_SETTINGS_MODULE devrait être un identifiant de module Python, pas un chemin de système de fichiers. En regardant le fichier django/conf/__ init__py, il semble qu'un chemin relatif à votre module de paramètres ne fonctionnera pas. Vous devrez le déplacer en dessous d'un répertoire listé dans votre sys.path, ou vous devrez ajouter un répertoire parent à votre sys.path et référencer votre module settings à partir de là.