我试图使我的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.pyqueue.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-pythonMySQLdb driver)将会很好地工作。

关于python - ImportError:没有名为队列的模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25175531/

10-11 22:45
查看更多