gpt4 book ai didi

python - 谷歌应用引擎 SDK : ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql

转载 作者:可可西里 更新时间:2023-11-01 08:09:04 24 4
gpt4 key购买 nike

我正在尝试在 virtualenv 中以 MySQL 作为数据库在 Google App Engine SDK(本地)上运行我的 Django 应用程序。我的 requirements.txt 文件中的所有内容都安装完美。当我启动 Google App Engine SDK 环境时,它向我抛出一个看起来很常见的讨厌错误,但 Stack Overflow 还没有任何在 Google App Engine SDK 中解决此问题的示例。

这是我项目根目录中的工作流程...

virtualenv venv && mkdir lib

源 venv/bin/activate

pip install -r requirements.txt -t lib/&& pip install -r requirements.txt

当我运行以下命令启动 SDK 时......

dev_appserver.py app.yaml

我在回溯中收到以下错误...

File "/Users/username/Repositories/projectname/lib/django/db/utils.py", line 211, in __getitem__
backend = load_backend(db['ENGINE'])
File "/Users/username/Repositories/projectname/lib/django/db/utils.py", line 115, in load_backend
INFO 2018-06-26 20:09:30,812 module.py:846] default: "GET /_ah/start HTTP/1.1" 500 -
return import_module('%s.base' % backend_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/username/Repositories/projectname/lib/django/db/backends/mysql/base.py", line 30, in <module>
'Did you install mysqlclient or MySQL-python?' % e
ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql.
Did you install mysqlclient or MySQL-python?

我的需求.txt

Django==1.11.8
djangorestframework==3.8.2
facebook-sdk
oauth2client==2.0.1
google-api-python-client==1.6.2
facebookads==2.11.1
httplib2==0.10.3
enum==0.4.6
requests-toolbelt==0.8.0
google-cloud-storage==1.6.0
google-resumable-media==0.3.1
google-auth
requests==2.18.0
lxml==3.8.0
pycrypto==2.6.1
MySQL-python==1.2.5

lib/ 的内容 Contents of <code>lib/</code>

我也在我的 app.yaml 中调用 MySQLdb...

libraries:
- name: MySQLdb
version: "latest"

appengine_config.py 的内容

# [START vendor]
from google.appengine.ext import vendor

vendor.add('lib')
# [END vendor]

我在调试时从列表中勾选了一些东西......

1) 当我在虚拟环境中执行 pip freeze 时,安装了 MySQL-python==1.2.5

2) MySQL 已安装并在我的本地计算机上完美运行。

3) 到目前为止,我已经浏览了 Stack Overflow 的大部分问题,但似乎没有一个有帮助。

最佳答案

安装是根据 Google recommendations 设置的并且没有明显的错误。该问题无法在外部环境中重现(类似的 Django 设置工作正常),所以我们找到了一个解决方法,请参见下面(设置 PYTHONPATH)。

GAE 请求将第三方库安装到 lib/目录,使它成为穷人的虚拟环境。然后 lib/正在通过调用 vendor.add('lib') 添加到模块搜索路径中在appengine_config.py .

这在作者的设置中工作正常,因此 GAE 设法从 lib/django/ 导入 Django .然后这个工作配置在导入 MySQLdb 时莫名其妙地失败了,它肯定安装在同一个 lib/ 中。 .

在调查过程中,我们检查了这个想法 if PYTHONPATH环境变量可能会影响任何事情。它没有,但设置它解决了问题:

export PYTHONPATH=/Users/username/Repositories/projectname/lib/

注意:避免在类似 PATH 的环境变量(Erik 评论中的 ./lib)中使用相对目录,这会造成安全漏洞。

关于python - 谷歌应用引擎 SDK : ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51050948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com