小编lap*_*pin的帖子

在Ubuntu上的python3.6中安装tkinter

+--------+-----------------------------------+
|   OS   |           Ubuntu 12.04            |
+--------+-----------------------------------+
| Python | 2.7, 3.2 and source installed 3.6 |
+--------+-----------------------------------+
Run Code Online (Sandbox Code Playgroud)

由于Python 3有两个版本,因此从存储库安装的任何内容都不适用于Python 3.6.存储库中最新版本的Python是3.2,因此我需要源安装或通过pip3.6.

启动后python3.6我尝试了import tkinter,这给出了以下错误.即使help('modules')返回了包含tkinter的模块列表.

 import tkinter
 ModuleNotFoundError: No module named '_tkinter'
Run Code Online (Sandbox Code Playgroud)

我尝试过同样的做法python3.2并且没有错误. tkinter._tkinter给出了python3.2的tkinter库的位置

我进入了python3.6包含所有库文件的目录,实际上它丢失了tkinter.so目标文件.

我该如何修复错误?

我想让tkinter/tkagg工作,因为它似乎已经安装了所有模块/包.

谷歌搜索后,我发现我需要python3.6再次构建,但这次运行配置时使用Tcl/Tk选项.我宁愿不.python3.6从头开始安装需要1小时左右.

还有其他方法可以告诉我python3.6Tcl/Tk的位置吗?

问题不是告诉python tcl/tk在哪里.搞乱python3.6的源代码,然后将python3.6与python3.2进行比较后,我发现tkinter调用_tkinter而不是python文件,它是python在安装过程中构建的.so(共享对象)文件通过使用gcc的setup.py,它可能会涉及到distutils.

新的更合适的问题是如何_tkinter.cpython-36m-i386-linux-gnu.so从tcl/tk 构建 ?

注意:我确实安装了tcl/tk,我已经使用tclsh和wish确认了.

python tkinter tcl python-3.x python-3.6

20
推荐指数
3
解决办法
2万
查看次数

将嵌套的 for 循环转换为等效的映射

例子:

for x in iterable1:
    expression
Run Code Online (Sandbox Code Playgroud)

map形式是:

map(lambda x: expression, iterable1)
Run Code Online (Sandbox Code Playgroud)

如何仅使用map和不使用列表推导式将其扩展到嵌套 for 循环?

例子:

for x in itr1:
    for y in itr2:
        expr
Run Code Online (Sandbox Code Playgroud)

python loops python-3.x map-function

4
推荐指数
2
解决办法
6101
查看次数

标签 统计

python ×2

python-3.x ×2

loops ×1

map-function ×1

python-3.6 ×1

tcl ×1

tkinter ×1