我编写了一个与OSX 10.10上的MySQL服务器通信的python脚本,它运行良好的Mac,直到我把它放在运行Ubuntu 14.04的VPS上
问题主要在于pyMySQL模块。 :我甚至无法在git页面here
上运行他们的示例脚本用于运行以下代码:
import pymysql.cursors
# Connect to the database
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
# connection is not autocommit by default. So you must commit to save
# your changes.
connection.commit()
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('webmaster@python.org',))
result = cursor.fetchone()
print(result)
finally:
connection.close()
结果是
Traceback (most recent call last):
File "1.py", line 9, in <module>
cursorclass=pymysql.cursors.DictCursor)
File "build/bdist.linux-x86_64/egg/pymysql/__init__.py", line 93, in Connect
TypeError: __init__() got an unexpected keyword argument 'password'
环境: Ubuntu 14.04 x86_64 Python 2.7.10 PyMySQL 0.6.7 Mac正在运行上面的脚本,但不是ubuntu。 提前谢谢。
答案 0 :(得分:0)
我没有做太多检查错误消息。相反,我卸载unbuntu服务器上的所有软件包,并按照Mac上的软件包列表将它们逐个安装到同一版本。令人惊讶的是,问题解决了。不幸的是,我不知道哪个模块导致问题
如果您不想花费太多时间逐个更新模块,可能需要尝试一下。
答案 1 :(得分:0)
这似乎是一个ubuntu问题,如果你安装了最新的pypi版本就可以解决。
我从dist-packages中的ubuntu中删除了包,并将其安装在site-packages中:
sudo apt-get purge python3-pymysql
sudo pip3 install --upgrade pymysql
你真的不想这样做,特别是在服务器上。或者你使用virtualenv:
virtualenv -p python3.4 venv3
source venv3/bin/activate
pip3 install --update pip
pip3 install --update pymysql
您需要更多地了解virtualenv才能使用它们,但我们的想法是您在venv3
中安装了一个完整且独立的python3.4环境,并使用{{1}激活}。这样就更难打破你的ubuntu(这在很大程度上依赖于一个正常工作的python)。此外,您可以在不同的virtualenv中安装不同版本的软件包。此外,在调试时,您可以将print-statements添加到virtualenv的site-packages文件夹中的python-code,而不会有严重破坏系统的风险。这很好,因为许多优秀的python库都有糟糕的错误报告。
答案 2 :(得分:0)
使用Python面对此错误:3.6,PyMySQL3:0.5。 解决方案:将'password'参数更改为'passwd'
以下是具有默认值的参数列表 host =“localhost”,user = None,passwd =“”,db = None,port = 3306,unix_socket = None,charset ='',sql_mode = None,read_default_file = None,conv = decoders,use_unicode = None,client_flag = 0,cursorclass = Cursor,init_command = None,connect_timeout = None,ssl = None,read_default_group = None,compress = None,named_pipe = None