mysql连接器缺少队列模块python3.3

时间:2014-02-12 07:38:51

标签: python python-3.x pyramid mysql-python

我正在设置python3.3虚拟环境上的金字塔框架。 对于数据库连接,我使用MySQL Connector / Python(SQLAlchemy)。

我遇到了这个问题:

当我尝试从数据库中选择记录时,我得到以下内容:

[Wed Feb 12 09:20:34.373204 2014] [:error] [pid 29351] [remote 127.0.0.1:55376] File "/home/xxx/wsgi/env/lib/python3.3/site-packages/mysql_connector_python-1.1.5-py3.3.egg/mysql/connector/pooling.py", line 29, in <module> [Wed Feb 12 09:20:34.373237 2014] [:error] [pid 29351] [remote 127.0.0.1:55376]
ImportError: No module named queue

它无法找到模块队列,但这很好用:

~/wsgi/env$ bin/python3.3 
Python 3.3.2+ (default, Oct  9 2013, 14:50:09) 
[GCC 4.8.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import queue
>>> 

问题出在哪里? wsgi/env/lib/python3.3/ queue.py中没有符号链接,但如果我手动添加,则会出现错误

编辑1: 当我使用pserve命令启动Web服务器时,一切正常,但是使用apache2,就会出现上面的那个。

Apache配置:

# Use only 1 Python sub-interpreter.  Multiple sub-interpreters
# play badly with C extensions.  See
# http://stackoverflow.com/a/10558360/209039
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess pyramid user=user group=staff threads=4 \
   python-path=/home/user/wsgi/env/lib/python3.3/site-packages
WSGIScriptAlias /app /home/user/wsgi/env/pyramid.wsgi

<Directory /home/user/wsgi/env>
  WSGIProcessGroup pyramid
 # Order allow,deny
  Require all granted
</Directory>

2 个答案:

答案 0 :(得分:0)

找出导致所有问题的原因。我使用的是mod_wsgi,与python3.3不兼容。 解决了问题:

sudo apt-get install libapache2-mod-wsgi-py3

答案 1 :(得分:0)

简短的故事:如果你的Python3代码依赖于队列模块,请确保导入&#34; queue&#34; - 不是&#34;队列&#34;。

长篇故事: 我遇到了类似的问题,同时尝试自动重启我的apache-served wsgi-coupled django-application。在我的情况下,我从https://code.google.com/p/modwsgi/wiki/ReloadingSourceCode获取了代码示例,并且仍然是第一个#ob;解决了#34;我的问题是&#34;导入队列&#34;通过在多处理导入队列中添加&#34;&#34; - 这显然是错误的,因为代码示例实际上是尝试从queuelib-module导入队列(至少我认为是这样)。因此,真正的,有点微妙的问题是大问题#Q; - 将行更改为&#34;导入队列&#34;解决了这个问题。