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
我对 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