在PyScript中加载WordNet失败的问题求助
初始尝试触发资源未找到错误
最初使用以下代码引入NLTK和WordNet:
<py-env> - nltk </py-env> <py-script> import nltk from nltk.corpus import wordnet as wn </py-script>
触发LookupError(resource_not_found),错误提示:
Please use the NLTK Downloader to obtain the resource: >>> import nltk >>> nltk.download('wordnet')
尝试自动下载资源失败
在代码中添加下载操作后:
<py-script> import nltk nltk.download('wordnet') from nltk.corpus import wordnet as wn </py-script>
控制台返回错误:
writing to py-3f0adca1-a38a-4161-c36f-7e6548260aa5 [nltk_data] Error loading wordnet: <urlopen error unknown url type:
[nltk_data] https> true
手动下载解压WordNet包失败
参考相关解决方案后,使用以下代码手动获取并解压WordNet压缩包:
from js import fetch from pathlib import Path import asyncio, os, sys, io, zipfile response = await fetch('https://github.com/nltk/wordnet/archive/refs/heads/master.zip') js_buffer = await response.arrayBuffer() py_buffer = js_buffer.to_py() # this is a memoryview stream = py_buffer.tobytes() # now we have a bytes object d = Path("/nltk/wordnet") d.mkdir(parents=True, exist_ok=True) Path('/nltk/wordnet/master.zip').write_bytes(stream) zipfile.ZipFile('/nltk/wordnet/master.zip').extractall( path='/nltk/wordnet/' )
出现解压错误:
APPENDING: True ==> py-2880055f-8922-cb23-34e4-db404fb1d7a4 --> PythonError: Traceback (most recent call last):
File "/lib/python3.10/asyncio/futures.py", line 201, in result
raise self._exceptionFile "/lib/python3.10/asyncio/tasks.py", line 232, in __step
result = coro.send(None)File "/lib/python3.10/site-packages/_pyodide/_base.py", line 500, in eval_code_async
await CodeRunner(File "/lib/python3.10/site-packages/_pyodide/_base.py", line 353, in run_async
await coroutineFile "
", line 21, in File "/lib/python3.10/zipfile.py", line 1258, in init
self._RealGetContents()File "/lib/python3.10/zipfile.py", line 1325, in _RealGetContents
raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file
尝试替代库wn失败
尝试安装wn库替代:
await micropip.install('https://files.pythonhosted.org/packages/ce/f1/53b07100f5c3d41fd33fc78ebb9e99d736b0460ced8acff94840311ffc60/wn-0.9.1-py3-none-any.whl')
触发依赖缺失错误:
JsException(PythonError: Traceback (most recent call last): File "/lib/python3.10/asyncio/futures.py", line 201, in result raise self._exception File "/lib/python3.10/asyncio/tasks.py", line 232, in __step result = coro.send(None) File "/lib/python3.10/site-packages/_pyodide/_base.py", line 500, in eval_code_async await CodeRunner( File "/lib/python3.10/site-packages/_pyodide/_base.py", line 353, in run_async await coroutine File "", line 14, in File "/lib/python3.10/site-packages/wn/init.py", line 47, in from wn._add import add, remove File "/lib/python3.10/site-packages/wn/_add.py", line 21, in from wn.project import iterpackages File "/lib/python3.10/site-packages/wn/project.py", line 12, in import lzma File "/lib/python3.10/lzma.py", line 27, in from _lzma import * ModuleNotFoundError: No module named '_lzma' )
请问上述操作中哪里出错了?
内容的提问来源于stack exchange,提问作者AbsoluteBeginner

