0

In The PyCharm I have Django configured in virtual environment, what I did is:

  1. Previously I had python 3.6 on my windows 10 so I uninstalled it and
  2. Installed Python 3.7
  3. pip install virtualenv
  4. vertualenv venv and then activated it
  5. pip install django
  6. also installed djangorestframework, coreapi and requests via pip
  7. django-admin startproject hasslefreeaccounts
  8. opened project in PyCharm, then: Files > settings > Language & Framework and Configured my project as:
  9. entered project root, settings.py and manage.py path (see image below)

enter image description here

and then created 2 apps named customer and master
and then configured the run configurations as:

enter image description here

after this (am using pycharm professional) everything works fine except while importing apps PyCharm Gives me error when I import my django apps in other as:

from masters.models import some_class 

pycharm says cant find module, thought when I run project it works fine with no error.
so I tried doing:

from ..master.models import some_class 

This makes PyCharm import apps (see image below)

enter image description here

this in pycharm doesn't shows any error but on run gives error as:

ValueError: attempted relative import beyond top-level package 

Other Details:

and here is the project interpreter settings:

enter image description here

and Settings.py as:

import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'KEY_HERE' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = ['*'] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework.authtoken', 'customers', 'masters', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'hasslefreeaccounts.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.TokenAuthentication', ), 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', ) } WSGI_APPLICATION = 'hasslefreeaccounts.wsgi.application' # Database # https://docs.djangoproject.com/en/2.1/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } # Password validation # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/2.1/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' # 'Asia/Kolkata' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.1/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, "static/") MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') MEDIA_URL = '/media/' 

UPDATED:

Basically PyCharm is reading my apps one directory above
I have tried updating my project source root to one directory above as well, but that doesn't help, in project interpreter settings

1 Answer 1

0

Not sure of but this helped me!

enter image description here

As in the image shown, the virtualenv shall be within the project directory and not outside, this helpe me!

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.