python - 标准环境下的 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 机器是短暂的,并且在会话结束后不会持续存在系统范围的更改。
实际上,这些更改仅在会话范围内持续存在。
有什么意见、建议吗?我做某事吗?错误的?
解决方案
app.yaml 文件仅在部署在 App Engine 上时用于您的应用程序。它仅为您部署的应用程序指定一些配置。所以通过定义:
libraries:
- name: MySQLdb
version: "latest"
它基本上指示 App Engine 平台使用实例上的内置库来运行您的代码。
现在,正如这里所解释的,在您的本地机器上进行开发,您需要自己安装该库。你可以通过运行来做到这一点:
pip install MySQL-python
请注意,您不必在lib
文件夹中也安装此库。仅当库未在内置第三方库中列出时才需要这样做,以便在部署时将库与您的应用程序一起上传。如果它在列表中,那么在 app.yaml 文件中引用它就足够了。
关于 Cloud Shell 的最后一件事。它是提供给您的一个小型 VM 实例,用于简化资源管理或测试。它不是为了开发。每次启动时都会安装默认映像(因此您安装的任何库或操作系统级别的工具都将丢失)。仅复制您的主文件夹。一些有用的工具默认安装在像 gcloud 这样的镜像上。
推荐阅读
- css - Tailwind CSS 将更多这些内联样式转换为实用程序类
- python - 从 py 脚本在虚拟环境中调用命令
- firebase - 我如何发送图像以及 nativescript 的 FCM 推送通知?
- excel - 如何在一系列单元格中获取最常用的单词?
- microservices - Helm + Umbrella Charts + Azure Pipeline
- python - 使用嵌套 SPAN 标签抓取多行 TD
- python - Python:无法循环遍历应用程序数据的电子表格以提取符合参数的信息
- python - 即使使用最高协议,腌制 C++ 对象时腌制也很慢
- c# - SVN 凭据
- c++ - 重载显式构造函数的不直观行为