我试图使我的Python脚本在Synology上运行。该应用程序使用Oracle's MySQL framework Connector/Python,我已通过在连接器/ Python的独立于平台的版本上运行python setup.py install
来安装了它。
我已经通过.msi安装程序在Windows PC上安装了Connector / Python。这运行得很好。但是每次我尝试在Synology上运行它时,都会出现此错误:
File "MyApplication.py", line 3, in <module>
from DatabaseConnection import DatabaseConnection
File "/volume1/public/Python/MyApplication/DatabaseConnection.py", line 3, in <module>
import mysql.connector
File "/usr/local/lib/python2.7/site-packages/mysql/connector/__init__.py", line 42, in <module>
from mysql.connector.pooling import (
File "/usr/local/lib/python2.7/site-packages/mysql/connector/pooling.py", line 29, in <module>
import queue
ImportError: No module named queue
我看到了两个问题:
我需要某种队列库。我在哪里可以得到?我的Windows PC刚安装了它。
就我而言,对于Python 2.7,队列库应该命名为
Queue
而不是queue
。但是,Connector / Python的平台独立版本未声明应在哪个版本上运行。为了澄清起见,我没有任何版本的队列库(即
Queue.py
或queue.py
)。我该如何解决?
最佳答案
您下载的应用程序是为Python 3设计的,并且您已经安装了Python 2。
与平台无关的zip存档具有连接器的Python 2和Python 3版本,并且在metasetupinfo.py
中进行了检查:
if sys.version_info >= (3, 1):
sys.path = ['python3/'] + sys.path
package_dir = { '': 'python3' }
elif sys.version_info >= (2, 6) and sys.version_info < (3, 0):
sys.path = ['python2/'] + sys.path
package_dir = { '': 'python2' }
else:
raise RuntimeError(
"Python v%d.%d is not supported" % sys.version_info[0:2])
由于某种原因,您平台上的此检查默认为Python 3,因此安装了错误版本的库。
Oracle MySQL连接器具有一些独特的功能(例如,它为django提供了优化的驱动程序),但是如果您不需要这些功能-安装
mysql-python
(MySQLdb driver)将会很好地工作。关于python - ImportError:没有名为队列的模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25175531/