无法在Python中为Django Oscar导入模块

时间:2019-10-02 06:47:00

标签: python django django-oscar

我已经按照给定的顺序运行命令来安装Django AND 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代码对所有代码显示一条红色的行,并以Unable to Import ...之类的错误开头。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

要检查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”。希望对您有帮助。