Sublime - ImportError:没有命名的模块

时间:2015-02-03 13:37:12

标签: python import module

我对python和sublime非常新。我目前正在观看培训视频并跟进。我遇到了一些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']

2 个答案:

答案 0 :(得分:5)

您需要将/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

答案 1 :(得分:0)

我在 MacO 上遇到过这个问题。我发现 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 使用缓存 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