Helpex - Trao đổi & giúp đỡ Đăng nhập
7

Tôi đang sử dụng ubuntu 16.04 và đã cài đặt python 3.7 và đặt nó thành mặc định bằng cách sử dụng hướng dẫn sau: Không thể đặt phiên bản python mặc định thành python3 trong ubuntu khi tôi nhập pythonvào bảng điều khiển, tôi nhận được python3.7, tôi đã cố gắng đặt appache2 để hoạt động với python 3.7 sử dụng:

sudo add-apt-repository --yes ppa:deadsnakes/ppa
sudo apt-get update --yes
sudo apt-get install --yes python3.7
sudo apt-get install --yes python3-pip
sudo apt-get --yes install python3-pip apache2 libapache2-mod-wsgi-py3 
sudo a2enmod wsgi
sudo apt install --yes python-django-common
sudo apt-get  install --yes python-django

nhưng tôi vẫn nhận được ngoại lệ của các gói nhập đã được cài đặt trong /var/log/apache2/error.log khi cố gắng liên hệ với máy chủ mà tôi không nhận được ở thiết bị đầu cuối như sau:

Traceback (most recent call last):
 File "/home/ubuntu/my_code/wsgi.py", line 11, in <module>
     from django.core.wsgi import get_wsgi_application
 ImportError: No module named 'django'
 mod_wsgi (pid=75005): Target WSGI script '/home/ubuntu/my_code/wsgi.py' cannot be loaded as Python module.
mod_wsgi (pid=75005): Exception occurred processing WSGI script '/home/ubuntu/my_code/wsgi.py'.
 Traceback (most recent call last):
  File "/home/ubuntu/my_code/wsgi.py", line 11, in <module>
  from django.core.wsgi import get_wsgi_application

mod_wsgi (pid=75005): Target WSGI script '/home/ubuntu/my_code/wsgi.py' cannot be loaded as Python module.

mặc dù tôi đã cài đặt django trong python 3.7 một lỗi khác mà tôi gặp phải là sau khi khởi động lại dịch vụ:

 mod_wsgi (pid=89300): Call to 'site.addsitedir()' failed for '(null)', stopping.

wsgiy.py của tôi:

import os
import sys

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "servicesite.settings")
path='/home/ubuntu/my_code/'

if path not in sys.path:
  sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'my_code.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Điều gì có thể là lý do cho lỗi này?

7 hữu ích 5 bình luận 430 xem chia sẻ
1

bạn cần xây dựng python và sau đó xây dựng wsgi vì wsgi mặc định được xây dựng dựa trên hệ thống là python, hãy sử dụng hướng dẫn này https://medium.com/@garethbjohnson/serve-python-3-7-with-mod-wsgi-on -ubuntu-16-d9c7ab79e03a

1 hữu ích 0 bình luận chia sẻ
-1

Tôi đã gặp một thông báo lỗi tương tự, hóa ra là thủ phạm thực thi SELinux. Bạn có thể thử tắt SELinux tạm thời để kiểm tra.

setenforce 0

// run sestatus to confirm that either it's permissive or disabled
sestatus

Nếu điều đó khắc phục được sự cố của bạn, bạn có thể tung xúc xắc và vô hiệu hóa SELinux vĩnh viễn hoặc tìm cách thích hợp để khắc phục sự cố.

Bạn đã biên dịch python theo cách thủ công? nếu đúng như vậy, đó là một trận bóng hoàn toàn khác. Bạn có thể phải biên dịch lại python với hàng loạt cờ để nó hoạt động.

-1 hữu ích 2 bình luận chia sẻ
-1

Trước hết, có vẻ như bạn đã nhầm lẫn khi cài đặt python và pip. nếu bạn đã cài đặt python3-pip thì bạn nên thử sudo pip3 intall django và sau đó kiểm tra nhập Django từ trình thông dịch python37 mà bạn đang sử dụng.

một điều khác là sử dụng hệ thống python không phải là cách tốt.

Tôi khuyên bạn nên cải thiện kiến ​​thức của mình sau https://realpython.com/intro-to-pyenv/

cũng sử dụng apache với mod_wsgi khá cũ, bạn có thể thử https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16 -04

-1 hữu ích 2 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ python python-3.x django ubuntu python-3.7 , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading