configure python3-tk para o python 3.4 debian wheezy instalado manualmente

2

No wheezy o pacote apt python3-tk requer python3.2 & pacotes python3. Eu quero python 3.4 e construí-lo manualmente. O problema é que eu não sei como obter o meu manual 3.4 build para 'ver' a instalação do python3-tk - ao tentar importar o tkinter eu recebo:

Traceback (most recent call last):
  File "/myscript.py", line 9, in <module>
    import tkinter as tk
  File "/opt/python3/lib/python3.4/tkinter/__init__.py", line 38, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'

se eu iniciar o interpretador do sistema python3 e importar o tkinter, ele carregará o módulo. Eu tenho minha compilação manual 3.4 instalado em um diretório em / opt /. Como obtenho para ver o tkinter instalado pelo apt?

    
por user1561108 10.09.2014 / 21:59

1 resposta

0

Meu palpite é que você precisará alterar a variável de ambiente, especificamente o ambiente, especificamente PYTHONPATH antes de executar o 'apt-get'.

Mas precisamos de mais detalhes aqui. Especificamente, o que é importante é o valor de sys.path . Então faça isso. Vá para o shell python3 que funciona e execute import sys; print(sys.path) . Defina PYTHONPATH antes de executar o apt-get para a impressão do valor correspondente. Por exemplo, se o resultado for:

['', '/usr/local/lib/python3.4/dist-packages/pyficache-0.2.6-py3.4.egg']

O equivalente seria

PYTHONPATH = ":/usr/local/lib/python3.4/dist-packages/pyficache-0.2.6-py3.4.egg"
export PYTHONPATH

ou

PYTHONPATH=":/usr/local/lib/python3.4/dist-packages/pyficache-0.2.6-py3.4.egg" apt-get install ...

Para entender o que está faltando, antes da linha 38 de /opt/python3/lib/python3.4/tkinter/__init__.py , adicione um import sys; print(sys.path) . E compare com o valor que funciona. Especificamente, você deve conseguir encontrar o diretório correto.

Como último recurso hack, você pode alterar a declaração de impressão adicionada ao __init__.py add o diretório, mas eu só faria isso se você estivesse pressionado pelo tempo (o que provavelmente não é o caso se você estiver perguntando sobre StackOverflow) ou estão totalmente frustrados e a configuração da variável de ambiente não funciona.

    
por 12.10.2015 / 03:26