从Django源码学习了模块的运行时导入importlib.import_module()、按名取模块属性getattr()、按名设置模块属性setattr()

想跟一下Django源码,通过项目manage.py的execute_from_command_lie(sys.argv)函数,一路进行代码跟踪,最终在django/core/management/__init__.py的类ManagementUtility的方法execute()方法中碰了壁,死活没找到类LazySettings的属性INSTALLED_APPS的属性初始化位置,虽然通过grep关键字查找找到了"应该"是来自于项目目录DirPcDjg0725/settings.py中的要安装的应用程序列表INSTALLED_APPS,但就想搞清楚是怎么作为类LazySettings的属性的?

    单纯阅读Django代码是相当吃力,于是在pycharm中建立了一个Django项目,通过跟踪函数调用来找出"类LazySettings的属性INSTALLED_APPS"的初始化位置。但发现诸如"from django.conf import settings"这样的导模块语句,将断点设置在django/conf/__init__.py中时死活不仅断不到,在逐行调试时所有在"from django.conf import settings"中的执行都会在Debugger窗口显示帧不可用"<frame not available>",pycharm是和谐的2020.1.1,不知道其他版本可不可以断得进去。

    无奈只能通过控制台输出变量来研究了:

 

在虚拟环境下调用Django项目的manage.py模块并传参"runserver 8000":

(venv_3.8) haypin@ubt:~/DirProj0721$ python3.8 manage.py runserver 8000

 

        在manage.py中导入了~/DirProj0721/venv_3.8/lib/python3.8/site-packages/django/core/management/包的global函数execute_from_command_line,然后将参数sys.argv=["runserver", "8000"]传给并调用了execute_from_command_line(sys.argv);

        django/core/management/包的__init__.py中global函数execute_from_command_line(argv)定义了类ManagementUtility(object)的一个实例对象:utility = ManagementUtility(argv),并调用了类ManagementUtility的实例方法execute(),以下是该方法的定义:

django/core/management/__init__.py:

    def execute(self):
        """
        Given the command-line arguments, figure out which subcommand is being
        run, create a parser appropriate to that command, and run it.
        """
        try:
            subcommand = self.argv[1]
        except IndexError:
            subcommand = 'help'  # Display help if no arguments were given.

        # Preprocess options to extract --settings and --pythonpath.
        # These options could affect the commands that are available, so they
        # must be processed early.
        parser = CommandParser(usage='%(prog)s subcommand [options] [args]', add_help=False, allow_abbrev=False)
        parser.add_argument('--settings')
        parser.add_argument('--pythonpath')
        parser.add_argument('args', nargs='*')  # catch-all
        try:
            options, args = parser.parse_known_args(self.argv[2:])
            print(options, '---', args) #打印看看
            handle_default_options(options)
        except CommandError:
            pass  # Ignore any option errors at this point.

        try:
            settings.INSTALLED_APPS
            print(settings.INSTALLED_APPS) #打印看看
        except ImproperlyConfigured as exc:
            self.settings_exception = exc
        except ImportError as exc:
            self.settings_exception = exc

        if settings.configured:
            # Start the auto-reloading dev server even if the code is broken.
            # The hardcoded condition is a code smell but we can't rely on a
            # flag on the command class because we haven't located it yet.
            if subcommand == 'runserver' and '--noreload' not in self.argv:
                try:
                    autoreload.check_errors(django.setup)()
                except Exception:
                    # The exception will be raised later in the child process
                    # started by the autoreloader. Pretend it didn't happen by
                    # loading an empty list of applications.
                    apps.all_models = defaultdict(dict)
                    apps.app_configs = {}
                    apps.apps_ready = apps.models_ready = apps.ready = True

                    # Remove options not compatible with the built-in runserver
                    # (e.g. options for the contrib.staticfiles' runserver).
                    # Changes here require manually testing as described in
                    # #27522.
                    _parser = self.fetch_command('runserver').create_parser('django', 'runserver')
                    _options, _args = _parser.parse_known_args(self.argv[2:])
                    for _arg in _args:
                        self.argv.remove(_arg)

            # In all other cases, django.setup() is required to succeed.
            else:
                django.setup()

        self.autocomplete()

        if subcommand == 'help':
            if '--commands' in args:
                sys.stdout.write(self.main_help_text(commands_only=True) + '\n')
            elif not options.args:
                sys.stdout.write(self.main_help_text() + '\n')
            else:
                self.fetch_command(options.args[0]).print_help(self.prog_name, options.args[0])
        # Special-cases: We want 'django-admin --version' and
        # 'django-admin --help' to work, for backwards compatibility.
        elif subcommand == 'version' or self.argv[1:] == ['--version']:
            sys.stdout.write(django.get_version() + '\n')
        elif self.argv[1:] in (['--help'], ['-h']):
            sys.stdout.write(self.main_help_text() + '\n')
        else:
            self.fetch_command(subcommand).run_from_argv(self.argv)

其中直接执行了settings.INSTALLED_APPS属性,变量settings从django.conf导入:

from django.conf import settings

定义在django/conf/__init__.py中,是一个LazySettings类实例

settings = LazySettings()

是在类LazySettings的_setup()方法中找到了端倪:

class LazySettings(LazyObject):
    """
    A lazy proxy for either global Django settings or a custom settings object.
    The user can manually configure settings prior to using them. Otherwise,
    Django uses the settings module pointed to by DJANGO_SETTINGS_MODULE.
    """
    def _setup(self, name=None):
        """
        Load the settings module pointed to by the environment variable. This
        is used the first time settings are needed, if the user hasn't
        configured settings manually.
        """
        '''20200725:加载由环境变量指向的settings模块。在第一次settings被需要时被使用,如果用户没有手动配置settings的话。
        '''
        print('执行了类LazySettings._setup()方法') #打印看看
        settings_module = os.environ.get(ENVIRONMENT_VARIABLE) #ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
        print("打印'os.environ.get(ENVIRONMENT_VARIABLE)':%s"%settings_module) #20200725:打印出'DirPcDjg0725.settings'
                #也就是项目目录下的settings.py的文件名
        if not settings_module:
            desc = ("setting %s" % name) if name else "settings"
            raise ImproperlyConfigured(
                "Requested %s, but settings are not configured. "
                "You must either define the environment variable %s "
                "or call settings.configure() before accessing settings."
                % (desc, ENVIRONMENT_VARIABLE))

        self._wrapped = Settings(settings_module) #创建Settings类实例,传参'DirPcDjg0725.settings',
                # 并且DirPcDjg0725/settings.py中确实定义有global变量INSTALLED_APPS
        print('打印self.INSTALLED_APPS:%s' % self.INSTALLED_APPS) #20200725:有了self.INSTALLED_APPS属性

LazySettings类的属性_wrapped是创建了一个Settings类实例并传参'DirPcDjg0725.settings'

继续看类Settings的定义:

class Settings:
    def __init__(self, settings_module):
        # update this dict from global settings (but only for ALL_CAPS settings)
        for setting in dir(global_settings):
            if setting.isupper():
                setattr(self, setting, getattr(global_settings, setting)) #将global_settings模块中大写的属性设置成
                        #类Settings的属性,属性名字和属性值都一样
                        #getattr(module-name, attr-name)、setattr(self, attr-name, attr-value)

        # store the settings module in case someone later cares
        self.SETTINGS_MODULE = settings_module #传入参数settings_module是用户项目目录的settings.py模块名DirPcDjg0725.settings

        mod = importlib.import_module(self.SETTINGS_MODULE) #调用内建模块importlib的import_module()方法
            # 导入DirPcDjg0725/settings.py模块,返回mod是模块对象
        print('打印type(mod)=%s, mod=%s' % (type(mod), mod)) #<class 'module> <module 'DirPcDjg0725.settings'>
        tuple_settings = (
            "INSTALLED_APPS",
            "TEMPLATE_DIRS",
            "LOCALE_PATHS",
        )
        self._explicit_settings = set() #创建一个空的集合对象
        for setting in dir(mod): #遍历module 'DirPcDjg0725.settings'模块属性
            if setting.isupper():
                setting_value = getattr(mod, setting) #获取module 'DirPcDjg0725.settings'模块属性

                if (setting in tuple_settings and
                        not isinstance(setting_value, (list, tuple))): #属性名是tuple_settings中的属性并且属性值不是列表或元祖
                    raise ImproperlyConfigured("The %s setting must be a list or a tuple. " % setting)
                setattr(self, setting, setting_value) #为类设置属性setattr(self, attr-name, attr-value),
                        # 其中就包括了属性"INSTALLED_APPS"
                print("为类Settings实例setattr()了%s属性,值为%s" % (setting, setting_value))
                self._explicit_settings.add(setting) #为类Setting的集合属性_explicit_settings增加属性名setting的元素

嘿嘿,原来是肿么回事,在类Settings的构造函数中导入了DirPcDjg0725/settings.py模块,并将模块的列表或元组属性,其中自然包括了global变量INSTALLED_APPS

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
getattr(module-name, attr-name)

设置成类Settings的属性

setattr(self, attr-name, attr-value)

所以DirPcDjg0725/settings.py模块中的变量就被赋作为类Settings的属性了,相当于读文件创建类属性名-属性值。

以后再看到莫名其妙,没有显式初始化的类属性,应该考虑是不是被setattr(self, attr-name, attr-value)初始化的属性,

另外参考了:django---加载INSTALLED_APPS的源码分析

Windows PowerShell 版权所有(C) Microsoft Corporation。保留所有权利。 安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows 加载个人及系统配置文件用了 634 毫秒。 (base) PS E:\DjangoProject> conda activate pytorch_gpu (pytorch_gpu) PS E:\DjangoProject> conda activate pytorch_gpu (pytorch_gpu) PS E:\DjangoProject> powershell Windows PowerShell 版权所有(C) Microsoft Corporation。保留所有权利。 安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows 加载个人及系统配置文件用了 658 毫秒。 (base) PS E:\DjangoProject> Remove-Item -Recurse -Force "E:\DjangoProject\dorm\__pycache__" (base) PS E:\DjangoProject> Remove-Item -Recurse -Force "E:\DjangoProject\DjangoProject\__pycache__" (base) PS E:\DjangoProject> conda activate pytorch_gpu (pytorch_gpu) PS E:\DjangoProject> Remove-Item -Recurse -Force "E:\DjangoProject\dorm\__pycache__" Remove-Item : 找不到路径“E:\DjangoProject\dorm\__pycache__”,因为该路径不存在。 所在位置 行:1 字符: 1 + Remove-Item -Recurse -Force "E:\DjangoProject\dorm\__pycache__" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (E:\DjangoProject\dorm\__pycache__:String) [Re move-Item], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand (pytorch_gpu) PS E:\DjangoProject> python check_template.py E:\anaconda3\envs\pytorch_gpu\python.exe: can't open file 'E:\\DjangoProject\\check_template.py': [Errno 2] No such file or directory (pytorch_gpu) PS E:\DjangoProject> python check_template.py Traceback (most recent call last): File "E:\DjangoProject\check_template.py", line 2, in <module> cat > check_template.py << 'EOF' NameError: name 'cat' is not defined (pytorch_gpu) PS E:\DjangoProject> django-redis 查称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 + django-redis + ~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (django-redis:String) [], CommandNotFoundExcep tion + FullyQualifiedErrorId : CommandNotFoundException (pytorch_gpu) PS E:\DjangoProject> pip install djangorestframework Collecting djangorestframework Downloading djangorestframework-3.16.1-py3-none-any.whl.metadata (11 kB) Requirement already satisfied: django>=4.2 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from djangorestframework) (5.2.9) Requirement already satisfied: asgiref>=3.8.1 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from django>=4.2->djangorestframework) (3.11.0) Requirement already satisfied: sqlparse>=0.3.1 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from django>=4.2->djangorestframework) (0.5.4) Requirement already satisfied: tzdata in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from django>=4.2->djangorestframework) (2025.3) Requirement already satisfied: typing_extensions>=4 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from asgiref>=3.8.1->django>=4.2->djangorestframework) (4.15.0) Downloading djangorestframework-3.16.1-py3-none-any.whl (1.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/1.1 MB ? eta -:--:-- WARNING: Connection timed out while downloading. WARNING: Attempting to resume incomplete download (0 bytes/1.1 MB, attempt 1) Downloading djangorestframework-3.16.1-py3-none-any.whl (1.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 19.0 kB/s 0:01:18 Installing collected packages: djangorestframework Successfully installed djangorestframework-3.16.1 (pytorch_gpu) PS E:\DjangoProject> pip install djangorestframework Requirement already satisfied: djangorestframework in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (3.16.1) Requirement already satisfied: django>=4.2 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from djangorestframework) (5.2.9) Requirement already satisfied: asgiref>=3.8.1 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from django>=4.2->djangorestframework) (3.11.0) Requirement already satisfied: sqlparse>=0.3.1 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from django>=4.2->djangorestframework) (0.5.4) Requirement already satisfied: tzdata in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from django>=4.2->djangorestframework) (2025.3) Requirement already satisfied: typing_extensions>=4 in e:\anaconda3\envs\pytorch_gpu\lib\site-packages (from asgiref>=3.8.1->django>=4.2->djangorestframework) (4.15.0) (pytorch_gpu) PS E:\DjangoProject> python manage.py makemigrations Traceback (most recent call last): File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 136, in check_custom_error_handlers handler = resolver.resolve_error_handler(status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 732, in resolve_error_handler callback = getattr(self.urlconf_module, "handler%s" % view_type, None) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "E:\DjangoProject\manage.py", line 22, in <module> main() File "E:\DjangoProject\manage.py", line 18, in main execute_from_command_line(sys.argv) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line utility.execute() File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 416, in run_from_argv self.execute(*args, **cmd_options) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 457, in execute self.check(**check_kwargs) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 492, in check all_issues = checks.run_checks( File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\registry.py", line 89, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 138, in check_custom_error_handlers path = getattr(resolver.urlconf_module, "handler%s" % status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' (pytorch_gpu) PS E:\DjangoProject> (pytorch_gpu) PS E:\DjangoProject> python manage.py migrate Traceback (most recent call last): File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 136, in check_custom_error_handlers handler = resolver.resolve_error_handler(status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 732, in resolve_error_handler callback = getattr(self.urlconf_module, "handler%s" % view_type, None) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "E:\DjangoProject\manage.py", line 22, in <module> main() File "E:\DjangoProject\manage.py", line 18, in main execute_from_command_line(sys.argv) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line utility.execute() File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 416, in run_from_argv self.execute(*args, **cmd_options) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 457, in execute self.check(**check_kwargs) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 492, in check all_issues = checks.run_checks( File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\registry.py", line 89, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 138, in check_custom_error_handlers path = getattr(resolver.urlconf_module, "handler%s" % status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' (pytorch_gpu) PS E:\DjangoProject> python manage.py migrate Traceback (most recent call last): File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 136, in check_custom_error_handlers handler = resolver.resolve_error_handler(status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 732, in resolve_error_handler callback = getattr(self.urlconf_module, "handler%s" % view_type, None) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "E:\DjangoProject\manage.py", line 22, in <module> main() File "E:\DjangoProject\manage.py", line 18, in main execute_from_command_line(sys.argv) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line utility.execute() File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 416, in run_from_argv self.execute(*args, **cmd_options) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 457, in execute self.check(**check_kwargs) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 492, in check all_issues = checks.run_checks( File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\registry.py", line 89, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 138, in check_custom_error_handlers path = getattr(resolver.urlconf_module, "handler%s" % status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' (pytorch_gpu) PS E:\DjangoProject> python manage.py runserver Watching for file changes with StatReloader Performing system checks... Exception in thread django-main-thread: Traceback (most recent call last): File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 136, in check_custom_error_handlers handler = resolver.resolve_error_handler(status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 732, in resolve_error_handler callback = getattr(self.urlconf_module, "handler%s" % view_type, None) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "E:\anaconda3\envs\pytorch_gpu\lib\threading.py", line 1016, in _bootstrap_inner self.run() File "E:\anaconda3\envs\pytorch_gpu\lib\threading.py", line 953, in run self._target(*self._args, **self._kwargs) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\commands\runserver.py", line 134, in inner_run self.check(**check_kwargs) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\management\base.py", line 492, in check all_issues = checks.run_checks( File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\registry.py", line 89, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\core\checks\urls.py", line 138, in check_custom_error_handlers path = getattr(resolver.urlconf_module, "handler%s" % status_code) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\DjangoProject\urls.py", line 25, in <module> path('', include('dorm.urls')), # 这一行将根路径指向dorm应用的路由 File "E:\anaconda3\envs\pytorch_gpu\lib\site-packages\django\urls\conf.py", line 39, in include urlconf_module = import_module(urlconf_module) File "E:\anaconda3\envs\pytorch_gpu\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "E:\DjangoProject\dorm\urls.py", line 9, in <module> from . import views_api # 导入新的API视图 File "E:\DjangoProject\dorm\views_api.py", line 5, in <module> from students.models import Student ModuleNotFoundError: No module named 'students' 这里问题出在哪里
最新发布
12-21
请求其他接口报错 patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "F:\install\anaconda3\envs\py3.9\lib\site-packages\django\utils\functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "F:\install\anaconda3\envs\py3.9\lib\site-packages\django\urls\resolvers.py", line 708, in urlconf_module return import_module(self.urlconf_name) File "F:\install\anaconda3\envs\py3.9\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "N:\work\LearningDoc\markdown\arcgis\arcgis_desktop\mxd动态发布服务脚本\gisproject\config\urls.py", line 26, in <module> path('file/', include('fileManager.urls')), File "F:\install\anaconda3\envs\py3.9\lib\site-packages\django\urls\conf.py", line 38, in include urlconf_module = import_module(urlconf_module) File "F:\install\anaconda3\envs\py3.9\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "N:\work\LearningDoc\markdown\arcgis\arcgis_desktop\mxd动态发布服务脚本\gisproject\fileManager\urls.py", line 5, in <module> from .view_viewshed import AddSightPoint, DeleteSightPoint, GetSightPoints, GetViewshed, GetLineSight File "N:\work\LearningDoc\markdown\arcgis\arcgis_desktop\mxd动态发布服务脚本\gisproject\fileManager\view_viewshed.py", line 5, in <module> from lib.gdal.lineOfSight2 import line_of_sight_with_segments_and_points File "N:\work\LearningDoc\markdown\arcgis\arcgis_desktop\mxd动态发布服务脚本\gisproject\lib\gdal\lineOfSight2.py", line 14, in <module> import rasterio File "F:\install\anaconda3\envs\py3.9\lib\site-packages\rasterio\__init__.py", line 27, in <module> from rasterio._vsiopener import _opener_registration
09-26
Traceback (most recent call last): File "D:\code\manage.py", line 22, in <module> main() File "D:\code\manage.py", line 18, in main execute_from_command_line(sys.argv) File "D:\code\.venv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line utility.execute() File "D:\code\.venv\lib\site-packages\django\core\management\__init__.py", line 345, in execute settings.INSTALLED_APPS File "D:\code\.venv\lib\site-packages\django\conf\__init__.py", line 83, in __getattr__ self._setup(name) File "D:\code\.venv\lib\site-packages\django\conf\__init__.py", line 70, in _setup self._wrapped = Settings(settings_module) File "D:\code\.venv\lib\site-packages\django\conf\__init__.py", line 177, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "D:\python3.9\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "D:\code\ChaCeRND\settings.py", line 361, in <module> os.mkdir(BASE_LOG_DIR) FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '/var/log/project/' pycharm在虚拟环境运行python项目错误
06-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值