标准环境中的GAE第三方库(例如MySQLdb)

时间:2018-09-12 07:52:10

标签: python google-app-engine google-cloud-platform

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

import MySQLdb

响应:ImportError: No module named MySQLdb

app.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。请注意,您的云   Shell机器是临时性的,不会在系统范围内进行更改   在会话结束之后。

实际上,这些更改仅在会话范围内保留。

有任何意见,建议吗?我做某事。错误吗?

1 个答案:

答案 0 :(得分:1)

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

libraries:
- name: MySQLdb
  version: "latest"

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

现在,如here所述,要在本地计算机上进行开发,您需要自己安装该库。您可以通过运行以下命令来做到这一点:

pip install MySQL-python

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

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