Я не могу запускать тесты

Я пытаюсь запустить свои тесты в своей виртуальной среде, поэтому, когда я запускаю команду:

python server/manage.py test --settings=skillcorner.settings_test api

Я получаю следующую ошибку:

> File "server/manage.py", line 8
>      print(f'Running with settings: {os.environ["DJANGO_SETTINGS_MODULE"]}')
>                                            ^
>      SyntaxError: invalid syntax

поэтому я запускаю (в своей виртуальной среде) команду (я просто использовал python3 вместо python: python3 server/manage.py test --settings=skillcorner.settings_test api

Я получаю следующую ошибку, на которой я застрял:

> Running with settings: skillcorner.settings_local
>      Traceback (most recent call last):
>      File "server/manage.py", line 12, in <module>
>     execute_from_command_line(sys.argv)
>      File "/home/yosra/.local/lib/python3.6/site-packages/django/core/management/__init__.py",
> line 381, in execute_from_command_line
>     utility.execute()
>     File "/home/yosra/.local/lib/python3.6/site-packages/django/core/management/__init__.py",
> line 357, in execute
>     django.setup() File "/home/yosra/.local/lib/python3.6/site-packages/django/__init__.py",
> line 24, in setup
>     apps.populate(settings.INSTALLED_APPS)
>     File "/home/yosra/.local/lib/python3.6/site-packages/django/apps/registry.py",
> line 91, in populate
>     app_config = AppConfig.create(entry)
>     File "/home/yosra/.local/lib/python3.6/site-packages/django/apps/config.py",
> line 90, in create
>     module = import_module(entry)
>     File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
>     return _bootstrap._gcd_import(name[level:], package, level)
>     File "<frozen importlib._bootstrap>", line 994, in _gcd_import
>     File "<frozen importlib._bootstrap>", line 971, in _find_and_load
>     File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
>     ModuleNotFoundError: No module named 'rest_framework

Я не могу понять, как это исправить, я пытался установить rest-framework с помощью ppip install, но это не работает!

а python manage.py runserver --settings=skillcorner.settings_local работает?

dirkgroten 08.04.2019 15:48
/usr/lib/python3.6/importlib/__init__.py это не похоже на виртуальный путь — вы уверены, что активировали его?
mfrackowiak 08.04.2019 15:51

да, я уверен, что это первое, что я сделал, я активировал свою виртуальную среду, используя: $source venv/bin/activate

yosra 08.04.2019 15:54

да python manage.py runserver работает, миграция тоже работает

yosra 08.04.2019 15:55

Не могли бы вы также подтвердить, добавили ли вы «rest_framework» в INSTALLED_APPS в своих настройках? Спасибо

Sarosh Khatana 08.04.2019 15:56

да, я добавил их, но я только что нашел источник ошибки! для запуска моих тестов мне пришлось создать базу данных, и для этого я использовал sudo, чтобы получить все разрешения, чего мне не следовало делать, потому что, как только я использую sudo, я не буду работать с python моей виртуальной среды установка, но вместо этого пользователя sudo

yosra 08.04.2019 16:09

Сначала установите среду Django REST. У вас есть это в вашем INSTALLED_APPS, но у вас его нет в вашей виртуальной среде. pip install djangorestframework

Paolo 08.04.2019 16:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не могу точно сказать, как вы управляете своей виртуальной средой, но я почти уверен, что проблема существует. Я бы предположил следующее:

  • Первая ошибка, которую вы получаете, действительно связана с форматированием f'{something}', которое было введено в python 3.6 (и, таким образом, вызывает ошибку в python2).
  • Вторая ошибка, которую вы получаете, связана с отсутствием rest_framework в среде, в которой вы используете Python3.

Мое предложение:

  • Удалите всю папку среды и убедитесь, что вы ее deactivate
  • Запустите python3 -m venv venv в терминале, чтобы создать новую среду.
  • Активируйте его: source venv/bin/activate
  • Установите свои зависимости от requirements.txt или pip install django djangorestframework (и любые другие зависимости вашего проекта)
  • Затем вы можете просто сделать python manage.py whatevercommand или ./manage.py whatevercommand для краткости (оба будут запускать python3, если у вас активирована среда)

Последний совет: вы можете проверить текущую версию Python (в любом месте env или jsut) с помощью python --version

Другие вопросы по теме