Я пытаюсь запустить свои тесты в своей виртуальной среде, поэтому, когда я запускаю команду:
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, но это не работает!
/usr/lib/python3.6/importlib/__init__.py
это не похоже на виртуальный путь — вы уверены, что активировали его?
да, я уверен, что это первое, что я сделал, я активировал свою виртуальную среду, используя: $source venv/bin/activate
да python manage.py runserver работает, миграция тоже работает
Не могли бы вы также подтвердить, добавили ли вы «rest_framework» в INSTALLED_APPS в своих настройках? Спасибо
да, я добавил их, но я только что нашел источник ошибки! для запуска моих тестов мне пришлось создать базу данных, и для этого я использовал sudo, чтобы получить все разрешения, чего мне не следовало делать, потому что, как только я использую sudo, я не буду работать с python моей виртуальной среды установка, но вместо этого пользователя sudo
Сначала установите среду Django REST. У вас есть это в вашем INSTALLED_APPS, но у вас его нет в вашей виртуальной среде. pip install djangorestframework
Я не могу точно сказать, как вы управляете своей виртуальной средой, но я почти уверен, что проблема существует. Я бы предположил следующее:
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
а
python manage.py runserver --settings=skillcorner.settings_local
работает?