在jupyter-lab中尝试下面的代码时,我得到了这个错误:
from transformers import pipeline令人惊讶的是,如果我将这一行代码复制到一个code_test.py文件中,并使用python3 code_test.py(终端和jupyter本身)执行它,一切都会很好。
我使用的是jupyter实验室,它被配置为使用虚拟env(包含变压器模块的一个)。
我已经搜索过类似的问题,但是没有一个解决方案有效(比如重新安装变压器模块)。
编辑的
sys.path在jupyter实验室的输出:
['/Users/{my_username}/{path_to_my_project}/code',
'/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',
'/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7',
'/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
'',
'/Users/{my_username}/Library/Python/3.7/lib/python/site-packages',
'/usr/local/lib/python3.7/site-packages',
'/Users/{my_username}/Library/Python/3.7/lib/python/site-packages/IPython/extensions',
'/Users/{{my_username}/.ipython']sys.path在code_test.py中的输出
['/Users/{my_username}/{path_to_my_project}/code',
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7',
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',
'/Users/{my_username}/{path_to_my_project}/code/env/lib/python3.7/site-packages']发布于 2020-07-23 09:04:13
通常,当您面临一个导入在一个环境中工作(脚本code_test.py)而在另一个环境(Jupyter)不工作的问题时,您需要将模块的搜索路径与sys.path进行比较,并将模块的位置与MODULE.__file__ (在本例中为transformers.__file__)进行比较。
当您比较两种环境的sys.path输出时,您会注意到'/Users/{my_username}/{path_to_my_project}/code/env/lib/python3.7/site-packages'只在一个环境中列出,而这正是从其中加载转换器模块的位置(transformers.__file__的输出)。这意味着jupyter实验室没有使用您的虚拟环境。
您所需要做的就是为jupyter实验室注册您的环境:
python3 -m ipykernel install --user --name=env而jupyter实验室现在将允许您选择环境作为内核。
https://stackoverflow.com/questions/63020991
复制相似问题