python - MacOS:运行代码时对 IDE 和终端的不同处理?
问题描述
尝试使用 ktinter 时,我在 macos 上遇到了 python IDE (Sublime) 问题:
我设置了一个干净的 mac 并通过普通安装程序安装了 Python 3.7(勾选了安装 tkinter 的框)
我现在遇到的问题是:当我在 Sublime 中编写代码并尝试在 IDE 中运行它(Sublime -> Tools -> Build)时,我收到一条错误消息。
代码
import tkinter as tk
tk._test()
输出
Traceback (most recent call last):
File "/Users/christiankoch/Desktop/sys.py", line 1, in <module>
import tkinter as tk
ImportError: No module named tkinter
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u "/Users/christiankoch/Desktop/sys.py"]
[dir: /Users/christiankoch/Desktop]
[path: /Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]
但是,当我保存文件并在终端中运行它时,一切正常,我看到了测试窗口。
在终端
python3 test.py
所以最终我对这两种方法的不同结果感到困惑。当我在 Windows 上使用 Sublime 时,它工作得非常好;甚至在 macos 上使用 pyCharm 也适用于 tkinter。所以我很困惑问题是什么。
解决方案
当您从控制台运行 file.py 时,默认使用环境变量中指定的可执行文件。在崇高你可能使用一个构建系统,它指向另一个环境/可执行文件。你应该看看https://youtu.be/xqcTfplzr7c 并按照说明进行操作。
推荐阅读
- c# - 快速循环 TFS 工作项或批量插入 TFS 工作项到 SQL 的快速方法
- rust - 允许我的应用程序启动新控制台屏幕的板条箱
- java - 在没有时间源的情况下,Android 源码的哪一部分决定了 Android 的初始时间?
- javascript - 在纯 JavaScript 中聚焦特定文本区域时选择文本并复制到剪贴板?
- android - 虽然 Android Studio 更新到 v3.3,但获取 API 'variant.getAssemble()' 已过时,并已替换为 'variant.getAssembleProvider()'
- java - 如何使用“@Qualifier”动态指定参数?
- android - Android 对讲在 listview 结束时宣布“in list of X item”
- php - FASTCGI 进程最近经常失败。请稍后再试请求
- c# - 使用其他邮件服务器时发送电子邮件时出错,期望 gmail
- schema - Hortonworks 架构注册表集群模式