为手动安装的 python 3.4 debian wheezy 配置 python3-tk

为手动安装的 python 3.4 debian wheezy 配置 python3-tk

在 wheezy apt 上打包 python3-tk 需要 python3.2 和 python3 包。我想要 python 3.4 并且已经手动构建了它。问题是我不知道如何让我的手动 3.4 版本“查看”python3-tk 安装 - 当尝试导入 tkinter 时,我得到:

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'

如果我启动系统 python3 解释器并导入 tkinter 它将加载该模块。我已将 3.4 手动构建安装到 /opt/ 中的目录中。我如何才能看到 apt 安装的 tkinter?

答案1

我的猜测是,您需要更改环境变量,特别是环境变量,特别是PYTHONPATH在运行“apt-get”之前。

但我们在这里需要更多细节。具体来说,重要的是 的值sys.path。所以就这样做吧。进入可以运行的 python3 shell 并运行import sys; print(sys.path).在运行 apt-get 之前设置 PYTHONPATH 来打印相应的值。例如,如果结果是:

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

等价的是

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

或者

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

要了解缺少的内容,请在第 38 行之前/opt/python3/lib/python3.4/tkinter/__init__.py添加一个import sys; print(sys.path).并将其与有效的值进行比较。具体来说,您应该能够找到正确的目录。

作为最后的手段,你可以更改添加的打印语句来__init__.py添加目录,但只有当你时间紧迫(如果你在 StackOverflow 上询问时可能不是这种情况)或者完全沮丧时我才会这样做并且设置环境变量不起作用。

相关内容