Я новичок в Джанго. Я использую Ubuntu, Apache и virtualenv. Я использую Ubuntu на DigitalOcean. Я пытаюсь использовать Django и React вместе. Итак, я скачал djangorestframework. Но когда я запускаю сервер, я столкнулся с этой проблемой.
(new_app) sot232@ubuntu:/var/www/html/django_app/commercial$ python3 manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/home/sot232/new_app/lib/python3.7/site-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/home/sot232/new_app/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "/home/sot232/new_app/lib/python3.7/site-packages/django/utils/autoreload.py", line 77, in raise_last_exception
raise _exception[0](_exception[1]).with_traceback(_exception[2])
File "/home/sot232/new_app/lib/python3.7/site-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/home/sot232/new_app/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/sot232/new_app/lib/python3.7/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/home/sot232/new_app/lib/python3.7/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/home/sot232/new_app/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'rest_framework'
Я правильно включил rest_framework в файл settings.py.
INSTALLED_APPS = [
'rest_framework',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'commercial',
]
Я пробовал эти команды.
sudo pip3 install djangorestframework
sudo pip install djangorestframework
sudo pip install django-rest-swagger
sudo apt-get install python3-setuptools
Я также пытался установить djangorestframework после sudo su.
(Я пробовал и другие предложения. Но я не могу их вспомнить.)
Кроме того, вот что я получил на оболочке python.
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rest_framework
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'rest_framework'
>>>
Вот дистрибутивы на случай, если вам это понадобится.
(new_app) sot232@ubuntu:/usr/local/lib/python3.7/dist-packages$ ls
Django-2.2.1.dist-info pytz-2019.1.dist-info
__pycache__ rest_framework
corsheaders sqlparse
django sqlparse-0.3.0.dist-info
django_cors_headers-3.0.0.dist-info virtualenv-16.5.0.dist-info
djangorestframework-3.9.4.dist-info virtualenv.py
pytz virtualenv_support
Как я могу решить мою проблему?
Любая помощь будет оценена. Я видел другие сообщения на StackOverFlow, которые кажутся похожими на мои, но, похоже, ничто не решило мою проблему.
(Редактировать 1)
Пока env активирован, я попытался запустить pip install djangorestframework и получил это сообщение об ошибке.
(new_app) sot232@ubuntu:~/new_app/bin$ pip install djangorestframework
Collecting djangorestframework
Using cached https://files.pythonhosted.org/packages/1b/fe/fcebec2a98fbd1548da1c12ce8d7f634a02a9cce350833fa227a625ec624/djangorestframework-3.9.4-py2.py3-none-any.whl
Installing collected packages: djangorestframework
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/home/sot232/new_app/lib/python3.7/site-packages/djangorestframework-3.9.4.dist-info'
Consider using the `--user` option or check the permissions.
(Редактировать 2)
Я бегу pip freeze и pip3 freeze. Я получил этот результат.
sot232@ubuntu:~/new_app/bin$ source activate
(new_app) sot232@ubuntu:~/new_app/bin$ pip freeze
Django==2.2.1
mysqlclient==1.4.2.post1
pytz==2019.1
sqlparse==0.3.0
Похоже, что rest_framework не установлен на моем virtualenv. Однако djangorestframework==3.9.4 устанавливается глобально.
Я совершенно уверен, что нахожусь в правильном virtualenv.
Вы использовали sudo, когда создавали виртуальную среду? Похоже, вы основываетесь на других комментариях, и если вы хотите установить rest_framework, вам нужно либо использовать sudo при его установке, либо, что предпочтительнее, удалить virtualenv и воссоздать его без использования пользователя root.





Мне кажется, что вы пытаетесь запустить это с виртуальной средой под названием new_app, активированной, в то время как Django REST Framework установлен глобально.
У вас есть способы решить эту проблему:
Запустите pip install djangorestframework (и любые другие, которые вам нужны или нужны) с активной средой new_app. Обратите внимание, что здесь нет sudo
Запустите свой сервер разработки без активной виртуальной среды.
Конечно, номер один является предпочтительным способом. Удачи!
Я попытался запустить «pip install djangorestframework». Выдает ошибку, что у меня нет разрешения. Должен ли я изменить разрешение пользователя?
Вы можете запустить pip freeze, чтобы подтвердить, какие библиотеки вы установили в свою виртуальную среду.
Иногда библиотека не была установлена должным образом, и она будет отсутствовать в этом списке.
Скопируйте rest_framework в главный каталог проекта или установите его.
Я не уверен, что вы имели в виду.
Все, что я пробовал, не удалось. Я просто создал еще один virtualenv и все переустановил. Теперь он работает как шарм.
У меня была эта проблема. И я запустил python -m pip install --upgrade pip для меня было работает.
Я получал ошибку даже после установки rest_framework. Наконец, это решение сработало для меня.
Это помогло мне
pip3 install djangorestframework
pip install djangorestframework
pip install djangorestframework-jwt
Вы находитесь в правильном virtualenv?