尝试在jupyter-lab中执行以下代码时遇到此错误:
from transformers import pipeline
令人惊讶的是,如果我将该行代码复制到code_test.py
文件中,并使用python3 code_test.py
(在终端和jupyter-lab本身中)执行,那么一切都会正常。
我正在使用jupyter-lab,并且配置为使用virtual-env(一个包含变压器模块的虚拟环境)。
我已经搜索了类似的问题,但是没有一个建议的解决方案起作用(例如重新安装 transformers 模块)。
已编辑:
在jupyter-lab中sys.path
的输出:
['/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']
code_test.py
中sys.path的输出:
['/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']
答案 0 :(得分:1)
通常,当您遇到这样的问题:导入在一个环境(脚本code_test.py)中工作而在另一个环境(jupyter-lab)中工作时,则需要比较带有{{1}的模块的搜索路径}以及带有 url = "opc.tcp://127.0.0.1:50"
client = Client(url)
client.connect()
print("Client connected!")
boilingHeat = client.get_node("ns=2;i=2")
#h = 2.5 # sample time
#tend = 200 # stop time
n=int(tend/h)
isClientConnected.set_value(True)
t1_start = time.perf_counter()
for i in range(n):
t1_stop = time.perf_counter()
elapsed_time = t1_stop - t1_start
boilingHeat_in = ramp(elapsed_time)
boilingHeat.set_value(boilingHeat_in)
if elapsed_time < h*(i+1):
print("Holding for some time:", h*(i+1) - elapsed_time)
print("Current value for boilingHeat is : ", boilingHeat_in)
time.sleep(h*(i+1) - elapsed_time)
client.disconnect()
的模块位置(在这种情况下为sys.path
)。
在比较两种环境的MODULE.__file__
的输出时,您会注意到transformers.__file__
仅在一个列表中列出,而这正是从中加载变压器模块的位置({{1的输出}}。这意味着jupyter-lab没有使用您的虚拟环境。
您需要做的就是通过以下方式为jupyter-lab注册您的环境:
sys.path
和jupyter-lab现在将允许您选择环境作为内核。