Невозможно импортировать tkSnack из Python3 - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь импортировать tkSnack из Python3 в Debian 10.

Я уже установил tkSnack из apt:

apt-get install python3-tksnack

В любом случае, при попытке импортировать модуль tkSnack из python3:

ModuleNotFoundError: No module named 'tkSnack'

Я также пытался установить tkSnack из pip, но появляется следующее сообщение об ошибке:

ERROR: Command errored out with exit status 1:
     command: /home/cooper/anaconda3/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-x8rnbcp1/snack/setup.py'"'"'; __file__='"'"'/tmp/pip-install-x8rnbcp1/snack/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-x8rnbcp1/snack/pip-egg-info
         cwd: /tmp/pip-install-x8rnbcp1/snack/
    Complete output (6 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-x8rnbcp1/snack/setup.py", line 47
        print GCC_VERSION
                        ^
    SyntaxError: Missing parentheses in call to 'print'. Did you mean print(GCC_VERSION)?
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Странно, что при импорте tkSnack в python2 .7 все хорошо работает!

У кого-нибудь есть идеи по этому поводу? Thaks!

1 Ответ

1 голос
/ 05 апреля 2020

В вашем вопросе 2 отдельных проблемы, поэтому было бы лучше, если бы вы задали 2 разных вопроса.

  1. Вы установили пакет с помощью менеджера системных пакетов apt-get но попытался использовать с местной средой анаконды. Это не работает: пакеты, установленные с помощью системных менеджеров пакетов, должны использоваться с установленными системой python. Для установки пакетов в виртуальные среды (включая anaconda) используйте conda или pip.

  2. SyntaxError в print означает, что код предназначен только для Python2; в Python3 print становится функцией и требует скобок: print(GCC_VERSION). Кажется, вы установили неверную версию пакета Python2 и только пытаетесь использовать ее с Python3. Удалите его и переустановите с обновлением кода для Python3.

...