+--------+-----------------------------------+
| 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确认了.
例子:
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)