Django не может импортировать тег git модуль на apache сервере, нормально на локальном сервере, Импорт из оболочки manage.py, но django не может импортировать его, Виртуальный сервер не используется - PullRequest
0 голосов
/ 01 августа 2020

Как я уже сказал, в моей системе все работает, но когда я отправил код на свой сервер (я заменяю каталог своего приложения новым обновленным каталогом кода и вручную добавляю тег git в свое установленное приложение в файле settings.py ) после этого запустите все необходимые cmd, затем я запускаю «sudo service apache2 reload». У меня 500 Внутренняя ошибка сервера.

Я прочитал много решений, но у меня ничего не работает. Когда я отменяю изменения, все работает нормально, веб-сайт оживает.

Я устанавливаю модуль tag git с помощью pip, как показано ниже:

Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: django-taggit in ./.local/lib/python3.6/site-packages (1.3.0)
Requirement already satisfied: Django>=1.11 in /usr/local/lib/python3.6/dist-packages (from django-taggit) (3.0.7)
Requirement already satisfied: asgiref~=3.2 in /usr/local/lib/python3.6/dist-packages (from Django>=1.11->django-taggit) (3.2.10)
Requirement already satisfied: pytz in /usr/local/lib/python3.6/dist-packages (from Django>=1.11->django-taggit) (2020.1)
Requirement already satisfied: sqlparse>=0.2.2 in /usr/local/lib/python3.6/dist-packages (from Django>=1.11->django-taggit) (0.3.1)

Затем я пытаюсь импортировать модуль из оболочки. Он импортируется:

ubuntu@ip-172-31-35-150:/var/www/mysite$ python3 manage.py shell
Python 3.6.9 (default, Jul 17 2020, 12:50:27) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from taggit.models import Tag
>>> Tag
<class 'taggit.models.Tag'>

Apache журнал ошибок

ubuntu@ip-172-31-35-150:/var/log/apache2$ tail error.log
[Fri Jul 31 08:29:23.722454 2020] [mpm_event:notice] [pid 26542:tid 139924014398400] AH00489: Apache/2.4.29 (Ubuntu) mod_wsgi/4.5.17 Python/3.6 configured -- resuming normal operations
[Fri Jul 31 08:29:23.722480 2020] [core:notice] [pid 26542:tid 139924014398400] AH00094: Command line: '/usr/sbin/apache2'
ubuntu

Здесь это журнал ошибок проблемы

ubuntu@ip-172-31-35-150:/var/log/apache2$ tail mysite-error.log
[Fri Jul 31 08:29:37.832247 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794]   File "/usr/local/lib/python3.6/dist-packages/django/apps/config.py", line 90, in create
[Fri Jul 31 08:29:37.832251 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794]     module = import_module(entry)
[Fri Jul 31 08:29:37.832257 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794]   File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
[Fri Jul 31 08:29:37.832261 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794]     return _bootstrap._gcd_import(name[level:], package, level)
[Fri Jul 31 08:29:37.832267 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794]   File "<frozen importlib._bootstrap>", line 994, in _gcd_import
[Fri Jul 31 08:29:37.832274 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794]   File "<frozen importlib._bootstrap>", line 971, in _find_and_load
[Fri Jul 31 08:29:37.832280 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794]   File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
[Fri Jul 31 08:29:37.832297 2020] [wsgi:error] [pid 32108:tid 139923711420160] [remote 162.158.166.21:63794] ModuleNotFoundError: No module named 'taggit'

Вот как я настраиваю Apache прикрепленный apache файл конфигурации. Apache файл конфигурации сервера .

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

Обновление1: Я хочу прояснить, что я не использую виртуальную среду, и когда я установил «django -crispy-forms», она работает нормально. Я не понял, почему он не может найти модуль «tag git», если он может использовать django -crispy-forms таким же образом.

Любые предложения будут полезны. Update2: Я кое-что понял, когда проверяю sys.path в python оболочке Я не получаю свой путь к проекту, но в оболочке manage.py мой путь к проекту имеет ли это какой-то смысл.

Python3

ubuntu@ip-172-31-35-150:~$ python3
Python 3.6.9 (default, Jul 17 2020, 12:50:27) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/ubuntu/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages']

оболочка Manage.py

ubuntu@ip-172-31-35-150:/var/www/mysite$ python3 manage.py shell
Python 3.6.9 (default, Jul 17 2020, 12:50:27) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> sys.path
['/var/www/mysite', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/ubuntu/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']

1 Ответ

0 голосов
/ 02 августа 2020

Тем не менее, я не понял, почему django не может импортировать тег git из моей основной системной среды, но каким-то образом я заставил его работать.

Я устанавливаю тег git в моем каталоге проекта django (/ mysite), чтобы django мог получить доступ к тегу git оттуда, используя следующую команду.

ubuntu@ip-172-31-35-150:/var/www/mysite$ sudo python3 -m pip install --target=/var/www/mysite django-taggit
WARNING: The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting django-taggit
  Downloading django_taggit-1.3.0-py3-none-any.whl (45 kB)
     |████████████████████████████████| 45 kB 10.6 MB/s 
Collecting Django>=1.11
  Downloading Django-3.0.8-py3-none-any.whl (7.5 MB)
     |████████████████████████████████| 7.5 MB 11.2 MB/s 
Collecting pytz
  Downloading pytz-2020.1-py2.py3-none-any.whl (510 kB)
     |████████████████████████████████| 510 kB 49.7 MB/s 
Collecting asgiref~=3.2
  Downloading asgiref-3.2.10-py3-none-any.whl (19 kB)
Collecting sqlparse>=0.2.2
  Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
     |████████████████████████████████| 40 kB 52.4 MB/s 
Installing collected packages: pytz, asgiref, sqlparse, Django, django-taggit
Successfully installed Django-3.0.8 asgiref-3.2.10 django-taggit-1.3.0 pytz-2020.1 sqlparse-0.3.1

, затем я просто перезагружаю сервер apache, и он работает хорошо. Это не лучший способ использовать такой модуль, потому что он создает много дополнительных файлов в моем каталоге, но пока отлично.

Если я найду точное решение, я обновлю его здесь.

...