1. 背景
1.1 软硬件相关信息
- PC: MacBook Pro
- Qt Creator:Qt Creator 4.13.1 Based on Qt 5.15.1 (Clang 11.0 (Apple), 64 bit)
- Python:Python 3.8.2
1.2 问题背景
最近在自学python,用了非常经典的《Python编程从入门到实践》,一开始用的教材里面推荐的Sublime Text来编辑运行代码,但由于本人对Qt Creator编辑器用起来更熟悉更趁手,为此一番折腾,以便在内嵌在Qt Creator中的应用程序输出窗口中直接查看代码运行输出log。
基础知识部分章节使用的是python自带的库,运行起来没有毛病;当学习到教材项目部分的“外星人入侵”章节时,问题来了,按照书籍中的步骤和网上的攻略安装好了pygame及其他相关模块之后,编辑好的alien_invation.py在SHELL终端运行正常,但是在Qt Creator中运行时,应用程序输出了如下的错误信息:
Traceback (most recent call last):
File "/Users/HostName/py_alien/alien_invasion.py", line 2, in <module>
import pygame
ImportError: No module named 'pygame'
2. 解决办法
2.1 设置环境变量
打开 .bash_profile:
vim ~/vim .bash_profile
在脚本末尾添加如下行并保存:
export PYTHONPATH="$PYTHONPATH:/Users/HostName/Library/Python/3.8/lib/python/site-package"
使环境变量设置生效:
source ~/.bash_profile
2.2 在Qt Creator中运行目标代码
重启Qt Creator,
- 配置要运行的脚本(这里是alien_invasion.py);
- 设置解释脚本使用的python版本(可以点击Manage按钮,在新打开的窗口中将某版本的python设置为默认使用版本);
- 设置工作目录(不设置 且 pygame load image 的路径不是图像的绝对路径的话,运行脚本可能会找不到文件)。
- 运行脚本,OK了~
此问题的解决参考了这篇文章,该文章解决的是PyCharm集成pygame中遇到的import error问题:Mac Pycharm 提示 – ImportError: No module named