Sublime - ImportError: No module named

Sublime - ImportError: No module named

我对 python 很陌生,而且很赞。我目前正在观看培训视频并跟进。我 运行 遇到了许多关于 sublime 的问题,但无法通过这个问题。尝试将模块导入我在训练期间创建的解释器时出现错误。 wiper.py 文件位于 Users/marcus/Documents/Scripts/。我已经在下面打印了当前路径。有人可以帮助我吗?

>>> import wiper 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named wiper
>>> print ('PATH = ' + os.environ['PATH'])
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:/Users/marcus/Documents/Scripts//.rvm/bin:de here

一些附加信息。我导入了 sys 和 运行 sys.path 并获得了这些信息。不知道有没有用。

>>> import sys
>>> sys.path
['',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages']

您需要将 /Users/marcus/Documents/Scripts 添加到 Python 模块搜索路径。 PATH 仅供您 shell 查找可执行文件,而不是 Python 模块。

您可以设置PYTHONPATH environment variable:

export PYTHONPATH='/Users/marcus/Documents/Scripts'

您可以只为您的 Sublime Text 项目设置该环境变量;在您的项目设置中添加:

"build_systems":
[
    {
        "name": "Python",
        "shell_cmd": "python -u \"$file\"",
        "env": {
            "PYTHONPATH": "/Users/marcus/Documents/Scripts"
        },
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }
]

或使用相同类型的设置创建全局 build system

另一种方法是让您的脚本通过插入 sys.path:

以编程方式添加路径
import sys
sys.path.insert(0, '/Users/marcus/Documents/Scripts')
import wiper

我在 MacOs 上遇到过这个问题。我发现 sublime 使用的是 v3.9,而 py-environment 默认是 v3.8。

使用 sublime 使用的特定 python 版本安装库解决了这个问题。

例如

> python3.8 -m pip install -U readerwriterlock 要求已经是最新的:readerwriterlock in ./opt/anaconda3/lib/python3.8/site-packages (1.0.8) 要求已满足,跳过升级:在 ./opt/anaconda3/lib/python3.8/site-packages 中键入扩展(来自 readerwriterlock)(3.7.4.3)

> python3.9 -m pip install -U readerwriterlock 收集读写锁 使用缓存的 readerwriterlock-1.0.8-py3-none-any.whl (10 kB) 已满足要求:在 /usr/local/lib/python3.9/site-packages 中输入扩展(来自 readerwriterlock)(3.7.4.3) 安装收集的包:readerwriterlock 成功安装readerwriterlock-1.0.8 警告:您正在使用 pip 版本 21.1.1;但是,版本 21.1.2 可用。 您应该考虑通过“/usr/local/opt/python@3.9/bin/python3.9 -m pip install --upgrade pip”命令升级。

> 其中 python3 /Users/arun.kaushik/opt/anaconda3/bin/python3

> python3
Python 3.8.5(默认,2020 年 9 月 4 日,02:22:02) [Clang 10.0.0] :: Anaconda, Inc. on darwin