Pycharm & Django: ImportError: Нет модуля с именем local_settings - PullRequest
0 голосов
/ 22 мая 2018

в блокноте Jupyter

Я использую блокнот jupyter. Я могу запустить свой скрипт, когда запускаю блокнот jupyter с помощью этой команды.

python manage.py shell_plus --notebook

Версия Python - 3.5.0 (по умолчанию, 14 сентября 2016 г., 05:13:11) [GCC 4.2.1 Совместимый Apple LLVM 7.3.0 (clang-703.0.31)] Он отлично работает.

в Pycherm с ноутбуком Jupyter

Теперь я хочу использовать jupyter в Pycharm.

import os, sys
import dateutil.parser
import django
MYPROJECT = 'django/project/path'
sys.path.insert(0, MYPROJECT)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "local_settings.py")
django.setup()

Эта версия Python также 3.5.0 (по умолчанию, 14 сентября 2016 г., 05:13:11) [GCC 4.2.1 Совместимость Apple LLVM 7.3.0 (clang-703.0.31)]

Так что я думаю, что это другая проблема с Django не может импортировать локальные настройки

Я получил эту ошибку в pycherm jupyter.Почему я получил «ImportError: Нет модуля с именем local_settings»?Если вы знаете, как решить эту проблему.Пожалуйста, помогите мне !!

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-18-d97420db067c> in <module>()
      7 sys.path.insert(0, MYPROJECT)
      8 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "local_settings.py")
----> 9 django.setup()
     10 from django.conf import settings
     11 import main.management.commands.mws as mws

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/__init__.py in setup(set_prefix)
     17     from django.utils.log import configure_logging
     18 
---> 19     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
     20     if set_prefix:
     21         set_script_prefix(

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/conf/__init__.py in __getattr__(self, name)
     54         """Return the value of a setting and cache it in self.__dict__."""
     55         if self._wrapped is empty:
---> 56             self._setup(name)
     57         val = getattr(self._wrapped, name)
     58         self.__dict__[name] = val

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/conf/__init__.py in _setup(self, name)
     41                 % (desc, ENVIRONMENT_VARIABLE))
     42 
---> 43         self._wrapped = Settings(settings_module)
     44 
     45     def __repr__(self):

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/conf/__init__.py in __init__(self, settings_module)
    104         self.SETTINGS_MODULE = settings_module
    105 
--> 106         mod = importlib.import_module(self.SETTINGS_MODULE)
    107 
    108         tuple_settings = (

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/__init__.py in import_module(name, package)
    124                 break
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127 
    128 

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/_bootstrap.py in _gcd_import(name, package, level)

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/_bootstrap.py in _find_and_load(name, import_)

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)

ImportError: No module named 'local_settings.py'; 'local_settings' is not a package

что я пытался

Я добавляю эти строки в settings.py

SITE_ROOT = os.path.realpath(os.path.dirname(__file__))

try:
    from local_settings import *
except ImportError:
    pass

Мои local_settigns это.

from .settings import *

DEBUG = True
TEMPLATE_DEBUG = DEBUG

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Но я получил эту ошибку.

   ---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-10-93d2cfaa1e85> in <module>()
      8 sys.path.insert(0, MYPROJECT)
      9 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "local_settings.py")
---> 10 django.setup()
     11 from django.conf import settings
     12 import main.management.commands.mws as mws

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/__init__.py in setup(set_prefix)
     17     from django.utils.log import configure_logging
     18 
---> 19     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
     20     if set_prefix:
     21         set_script_prefix(

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/conf/__init__.py in __getattr__(self, name)
     54         """Return the value of a setting and cache it in self.__dict__."""
     55         if self._wrapped is empty:
---> 56             self._setup(name)
     57         val = getattr(self._wrapped, name)
     58         self.__dict__[name] = val

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/conf/__init__.py in _setup(self, name)
     41                 % (desc, ENVIRONMENT_VARIABLE))
     42 
---> 43         self._wrapped = Settings(settings_module)
     44 
     45     def __repr__(self):

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/site-packages/django/conf/__init__.py in __init__(self, settings_module)
    104         self.SETTINGS_MODULE = settings_module
    105 
--> 106         mod = importlib.import_module(self.SETTINGS_MODULE)
    107 
    108         tuple_settings = (

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/__init__.py in import_module(name, package)
    124                 break
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127 
    128 

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/_bootstrap.py in _gcd_import(name, package, level)

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/_bootstrap.py in _find_and_load(name, import_)

/Users/trmt_8/.pyenv/versions/3.5.0/lib/python3.5/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)

ImportError: No module named 'local_settings.py'; 'local_settings' is not a package

1 Ответ

0 голосов
/ 02 июня 2018

Я решил эту проблему с помощью этого кода.просто запустите сценарий сверху.

import os, sys, django
sys.path.append('/my/project/path')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings') #if you have local_settings.py it's all so works well.
django.setup()

Возможно, проблема в sys.path.insert(0, MYPROJECT).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...