首页 > 解决方案 > 标准环境下的 GAE 第三方库(如 MySQLdb)

问题描述

我一直在努力使用MySQLdb. 在我的项目(Python 2.7)中,我有:

import MySQLdb

作为回应:ImportError: No module named MySQLdb

应用程序.yaml

libraries: 
- name: MySQLdb
  version: latest

我发现这MySQLdb是预定义标准模块的一部分。然而我仍然无法解决它。什么时候

pip install -t /lib MySQLdb

回应是:

收集 MySQLdb

找不到满足 MySQLdb 要求的版本(来自版本:)没有为 MySQLdb 找到匹配的发行版

因此,我遵循了一些tuts并这样做了:

sudo apt-get install python-mysqldb

安装时我有:

您正在 Cloud Shell 中运行 apt-get。请注意,您的 Cloud Shell 机器是短暂的,并且在会话结束后不会持续存在系统范围的更改。

实际上,这些更改仅在会话范围内持续存在。

有什么意见、建议吗?我做某事吗?错误的?

标签: pythongoogle-app-enginegoogle-cloud-platform

解决方案


app.yaml 文件仅在部署在 App Engine 上时用于您的应用程序。它仅为您部署的应用程序指定一些配置。所以通过定义:

libraries:
- name: MySQLdb
  version: "latest"

它基本上指示 App Engine 平台使用实例上的内置库来运行您的代码。

现在,正如这里所解释的,在您的本地机器上进行开发,您需要自己安装该库。你可以通过运行来做到这一点:

pip install MySQL-python

请注意,您不必在lib文件夹中也安装此库。仅当库未在内置第三方库中列出时才需要这样做,以便在部署时将库与您的应用程序一起上传。如果它在列表中,那么在 app.yaml 文件中引用它就足够了。

关于 Cloud Shell 的最后一件事。它是提供给您的一个小型 VM 实例,用于简化资源管理或测试。它不是为了开发。每次启动时都会安装默认映像(因此您安装的任何库或操作系统级别的工具都将丢失)。仅复制您的主文件夹。一些有用的工具默认安装在像 gcloud 这样的镜像上。


推荐阅读