簡體   English   中英

在 GCP 上部署 OpenLiteSpeed django 解決方案時出現“ModuleNotFoundError(”No module named 'MySQLdb'“,)”

[英]“ModuleNotFoundError(”No module named 'MySQLdb'“,)” when deploying a OpenLiteSpeed django solution on GCP

我正在測試谷歌雲平台,我在谷歌計算引擎上部署了一個帶有 Ubuntu VM 的 OpenLiteSpeed Django 解決方案。 部署后,一切都像一個魅力,我能夠到達“你好,世界”起始頁面。

當我嘗試通過將/usr/local/lsws/Example/html/demo/app中的views.py文件更改為:

import MySQLdb
from django.shortcuts import render
from django.http import HttpResponse


def getFromDB():
    data = []
    db = MySQLdb.connect(host="ip",
                      user="user",
                      passwd="pw",
                      db="db")
    cur = db.cursor()
    cur.execute("SELECT * FROM table")
    for student in students:
        data.append(student)
    return data


def index(request):
    return HttpResponse(getFromDB)

並再次訪問 IP 我遇到了以下回溯和錯誤:

Environment:


Request Method: GET
Request URL: http://ip/

Django Version: 3.0.3
Python Version: 3.6.9
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback (most recent call last):
  File "/usr/local/lsws/Example/html/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lsws/Example/html/lib/python3.6/site-packages/django/core/handlers/base.py", line 100, in _get_response
    resolver_match = resolver.resolve(request.path_info)
  File "/usr/local/lsws/Example/html/lib/python3.6/site-packages/django/urls/resolvers.py", line 544, in resolve
    for pattern in self.url_patterns:
  File "/usr/local/lsws/Example/html/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lsws/Example/html/lib/python3.6/site-packages/django/urls/resolvers.py", line 588, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/usr/local/lsws/Example/html/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lsws/Example/html/lib/python3.6/site-packages/django/urls/resolvers.py", line 581, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/local/lsws/Example/html/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
    <source code not available>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
    <source code not available>
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
    <source code not available>
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
    <source code not available>
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
    <source code not available>
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    <source code not available>
  File "/usr/local/lsws/Example/html/demo/demo/urls.py", line 18, in <module>
    from app import views
  File "/usr/local/lsws/Example/html/demo/app/views.py", line 1, in <module>
    import MySQLdb

Exception Type: ModuleNotFoundError at /
Exception Value: No module named 'MySQLdb'

在此處輸入圖像描述

我嘗試在/usr/bin目錄中運行./pip3 install mysqlclient以及sudo apt install python3-devsudo apt install libmysqlclient-dev ,但沒有成功。 有人能幫忙嗎? 我是使用應用程序的新手。

更新:所以,通過嘗試一堆不同的東西,我終於通過 cd'ing 進入/usr/bin並執行sudo -H./pip3 install mysqlclient來解決問題。 我不完全確定為什么在執行./pip3 install mysqlclient時它沒有給我任何權限錯誤 - 但是現在問題已解決。

是否安裝了 MySQLdb? 進入 pip3 list 看到了嗎?

我在文檔中看到建議是像這樣導入 MySQLdb。

from MySQLdb import _mysql

https://mysqlclient.readthedocs.io/user_guide.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM