Python 3,PyQt5,Mac OSx和Sublme Text:导入错误

时间:2016-03-16 01:37:21

标签: python macos pyqt sublimetext3

在尝试让环境工作的过程中,我可能已经使用Homebrew和没有安装了东西。无论哪种方式,我目前的情况如下:

Python 3是通过Homebrew安装的,可以使用IDLE和Sublime Text。 PyQt5导入工作并且可以使用IDLE。

在Sublime Text(和PyCharm)中,它仍在使用Python 3,但PyQt5导入会出现以下错误:

Traceback (most recent call last):
  File "/Users/username/Documents/PythonWorkspace/testing.py", line 8, in <module>
    from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
ImportError: No module named PyQt5.QtWidgets
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u "/Users/username/Documents/PythonWorkspace/testing.py"]
[dir: /Users/username/Documents/PythonWorkspace]
[path: “/usr/lib/python3.5/site-packages/PyQt5:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/local/MacGPG2/bin:/Library/TeX/texbin”]

据我所知,这个问题与Paths有关。看起来Sublime Text是基于名为“paths”的文件利用路径在某些时候,我似乎已经添加到此文件中以允许它发现Python3和SIP。而IDLE安装似乎与bash_profile和sys.path

相关联

我觉得自己越来越接近工作环境,但我们会感激任何帮助,特别是在理解为什么会出现这个问题时。谢谢!

1 个答案:

答案 0 :(得分:0)

Sublime Text运行以下shell命令:

python -u "/Users/username/Documents/PythonWorkspace/testing.py"

所以我们需要知道这个&#34; python&#34;驻留。尝试在控制台中运行它:

which python

如果您得到类似 / usr / bin / python 的内容,那么我们可以说,Sublime Text尝试将您的脚本提供给系统osx python,即2.7其实。尝试运行&#34;哪个python3&#34;检查是否创建了python3可执行文件的符号链接。如果不是,你可以自己做,而不仅仅是使用它。

我建议你为Sublime Text添加一个新的python3构建系统(不要乱用系统python)。创建一个文件:

/Users/username/Library/Application Support/Sublime Text 3/Packages/User/Python 3.sublime-build

与内容类似(你可以使用你的符号链接到python3而不是路径):

{
    "cmd": ["/path/to/your/python3", "$file"]
}

并尝试使用&#34;工具 - &gt;运行您的脚本构建系统 - &gt; Python 3&#34;在Sublime Text中启用。

更高级的构建系统布局可能如下所示:

    {
    "path": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
    "env":
        {
            "PYTHONPATH":"/usr/local/lib/python:/usr/local/username/python/3.3/lib/python3.3/"
        },
    "cmd": ["python3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "encoding": "utf-8",
    "env": {"LANG": "ru_RU.UTF-8"}
    }