#python-3.x #syntax-error #configparser
#python-3.x #синтаксическая ошибка #configparser
Вопрос:
Я пытаюсь заставить модуль pymysql работать с python3 на Macintosh. Обратите внимание, что я начинающий пользователь python, который решил перейти с ruby и пытаюсь создать простой (вздох) проект базы данных для управления моим изучением python.
В простой (как я думал) тестовой программе я получаю синтаксическую ошибку в confiparser.py (которая используется модулем pymysql)
def __init__(self, defaults=None, dict_type=_default_dict,
allow_no_value=False, *, delimiters=('=', ':'),
comment_prefixes=('#', ';'), inline_comment_prefixes=None,
strict=True, empty_lines_in_values=True,
default_section=DEFAULTSECT,
interpolation=_UNSET):
Согласно Komodo, ошибка находится во второй строке. Я предполагаю, что это связано со звездочкой, но независимо от этого, я не знаю, почему возникла бы подобная проблема со стандартным модулем Python.
Кто-нибудь видел это раньше?
Комментарии:
1. Откуда вы взяли модуль pymysql и как вы запускаете Python? Все официальное должно работать и
*
абсолютно допустимо в Python 3, но не во 2, так что, возможно, вы просто используете неправильную версию или перепутали пути импорта.2. Вау — спасибо за быстрый ответ — насколько я знаю (но я проверю), я запускаю python 3.2 на своем Mac через Komodo IDE. Ваш комментарий о том, что * допустимо в 3, но не 2, явно является важным намеком на вероятную причину. Кстати, pymysql пришел из code.google.com/p/pymysql
3.
import sys; print (sys.version)
(перед импортом) было бы простым и относительно безотказным способом подтвердить, что скрипт действительно выполняется с помощью Python 3.4. Вздох, вы абсолютно правы — Похоже, Komodo запускает интерпретатор python 2, хотя я настроил его (предположительно) для запуска python 3. Я пойду поищу это, и большое спасибо за ваш мгновенный ответ. Я не знаю, как пометить ваш комментарий как принятый ответ.
5. Комментарии не могут быть приняты, ответы могут. Я обобщил комментарии в ответ.
Ответ №1:
Вы, скорее всего, запускаете код с помощью интерпретатора 2.x . Интересно, почему он вообще пытается импортировать библиотеки 3.x, возможно, ответ кроется в вашем процессе установки — но это другой вопрос. В любом случае, это (перед любыми другими import
-ами)
import sys
print(sys.version)
должно показать, какая версия Python фактически запущена, поскольку Komodo Edit может по какой-либо причине выбирать неправильный исполняемый файл. В качестве альтернативы, не указывайте скобки, и это просто приведет к сбою при запуске с Python 3.
Комментарии:
1. Механизм управления тем, запускается Komodo с python3 или python2, довольно неясен. Но на случай, если у кого-то еще есть такая проблема, пожалуйста, смотрите community.activestate.com/forum / …
Ответ №2:
В Python 3.2 модуль configparser действительно выглядит таким образом. Импорт этого отлично работает с Python 3.2, но не с Python 2.
Прав ли я, предполагая, что вы получаете ошибку при попытке запустить свой модуль с Komodo? Тогда вы просто настроили неправильный исполняемый файл Python.
Комментарии:
1. Согласно комментарию от «delnan», синтаксис должен быть в порядке в Python 3