【问题标题】:Unable to import Modules in Python for Django Oscar无法在 Python 中为 Django Oscar 导入模块
【发布时间】:2019-10-02 06:47:00
【问题描述】:

我已经按照给定的顺序运行命令安装了 Django 和 Oscar:

virtualenv eshop_env
eshop_env/Scripts/Activate

pip install django-oscar

django-admin.py startproject eshop


cd eshop
manage.py migrate

eshop目录下的settings.py文件最上面有这两行:

import os
from oscar.default import *

os 模块被导入,没有任何错误。不过from下面有一条红色波浪线。

我正在使用 Visual Studio Code。当我将鼠标悬停在这条线上时,它说无法导入oscar.default。同样的错误出现在我所有涉及 django 和 oscar 的导入语句中。

这也会在我运行迁移命令后导致命令行中出现以下错误:

ModuleNotFoundError: No module named 'oscar.default'

我试过跑步

pip install oscar.default
pip install oscar

但它们都显示错误。

但是,我能够再次成功运行pip install django-oscar 命令。但是,关于模块的错误并没有改变。

我做错了什么?

这是我的项目目录结构:

D:\Python Websites\Example\eshop\
D:\Python Websites\Example\eshop_env\

D:\Python Websites\Example\eshop\manage.py

D:\Python Websites\Example\eshop\eshop\settings.py, urls.py etc.

所有其他模块也会出现导入错误:

from django.apps import apps
from django.urls import include, path  # > Django-2.0
from django.contrib import admin
from oscar.app import applications

Visual Studio Code 为所有这些都显示一条红色的路线,错误以Unable to Import ... 开头。

【问题讨论】:

标签: python django django-oscar


【解决方案1】:

我认为您已经在虚拟环境中安装了django-oscar,这不是问题。我认为您必须“告诉” VS Code 使用名为 eshop_env 的特定 virtualenv。 请查看此链接以获取有关如何告诉 vscode 使用哪个 virtualenv 的详细说明:https://code.visualstudio.com/docs/python/environments。 祝你好运。

【讨论】:

    【解决方案2】:

    要检查 Python 在哪里查找您的文件,请将此代码复制到 settings.py

    import os
    import environ
    import oscar
    
    # To check where is looking Python
    
    env = environ.Env()
    
    from os.path import dirname, abspath
    ROOT = dirname(abspath(__file__)).replace('\\', '/') + '/'
    
    print ("self.__name__: " + __name__)
    print ("self.__file__: " + __file__)
    print ("ROOT: " + ROOT)
    
    
    import django
    print (django.__path__)
    print (oscar.__path__)
    print (environ.__path__)
    ...    
    

    然后在控制台中输入“python manage.py runserver”。我希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 2020-07-02
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多