反复检查,代码无任何问题。
直接使用python解释器也能正常启动,但是在vsc里用code runner插件运行就报错。

PS E:\PythonDevelopFiles\GUI-n2n> python -u "e:\PythonDevelopFiles\GUI-n2n\app.py"
Traceback (most recent call last):
  File "e:\PythonDevelopFiles\GUI-n2n\app.py", line 3, in <module>
    from tkinter import *
  File "C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\lib\python3.9\tkinter\__init__.py", line 37, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk

Windows的Python安装包默认是会安装tkinter的,接着我发现我居然有两个可选解释器

2023-01-27T19:39:36.png
第二个貌似是不久前为了编译n2n安装choco包管理器后使用choco安装的,打开控制面板\程序\程序和功能,发现确实还有个
Python Launcher 3.9.7686.0,大概是两个注册环境产生冲突了。所以手动运行了其中一个的安装工具进行配置选择修复,果不其然发现tk/tcl是扫描到的修复项目。
接着发现问题没有解决,并且在windows目录下手动找到了一些乱七八糟的pyhton文件残留。
索性重新安装python3.8 (为了兼容Windows7)
接着问题依旧,连从外部运行也出现报错:文件名、目录名或卷标语法不正确。

我人麻了,Windows真的不适合开发。。。。配置开发环境可用性还要用户手动去保证,商店下的py3.8还这个德行。我不想在微软阿三的粪坑上浪费时间了,直接重启到Debian11
sudo apt install python3-tk #Debian11已经预装Python3了,但是没有预装tk。

Linux下Python的tkinter库是单独打包的。(因为非开发者通常不需要下载tk即可运行常见的的各类应用,即使某些有需要,其打包时也会写明对python3-tk的依赖。

VSC启动.....

[Running] python -u "/tmp/tempCodeRunnerFile.python"
/bin/sh: 1: python: not found

[Done] exited with code=127 in 0.008 seconds

好吧,Code Runner 默认用的是python这个命令调用的,手动建立个软链接就好了。
或者...sudo apt install python-is-python3 #我更喜欢使用包管理器,而不是让自己手动制造哪些我可能在未来忘记或产生疑问的非常规因素。
VScode 启动,右键 Run Code
窗口出现,继续开发。

尾声:祝愿不可靠的MS Windows早点从中国广大用户的PC里滚蛋,哪怕使用不被看好的国产Linux发行版也比这种屎山生态的不可控专有软件更有利于国家发展。

PS:今天早上把应用商店的Python3.8卸载掉,果断choco install python3安装了最新版,功能一切正常,问题解决。

标签: none

添加新评论