我正在尝试加载程序包StanfordCoreNLP以正确解析其页面中显示的电影评论(https://nlp.stanford.edu/sentiment/treebank.html):(我使用MAC)
nlp = StanfordCoreNLP("/Users//NLP_models/stanford-corenlp-full-2018-01-31")
但是得到错误:
Traceback (most recent call last):
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 295, in wrapper
return fun(self, *args, **kwargs)
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 480, in connections
rawlist = cext.proc_connections(self.pid, families, types)
PermissionError: [Errno 1] Operation not permitted
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 2411, in <module>
globals = debugger.run(setup['file'], None, None, is_module)
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 1802, in run
launch(file, globals, locals) # execute the script
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
...
...
...
File "/Users/anaconda3/lib/python3.6/site-packages/stanfordcorenlp/corenlp.py", line 79, in __init__
if port_candidate not in [conn.laddr[1] for conn in psutil.net_connections()]:
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/__init__.py", line 2191, in net_connections
return _psplatform.net_connections(kind)
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 229, in net_connections
cons = Process(pid).connections(kind)
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 300, in wrapper
raise AccessDenied(self.pid, self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=5488)
我试过
conda update conda
conda update anaconda-navigator
conda update navigator-updater
但它没有帮助。 任何想法??
谢谢!
答案 0 :(得分:1)
我遇到了同样的问题,可以通过使用sudo
来运行代码来使其正常工作,如下所示:
sudo /Users/edamame/workspace/git/chinese_nlp/venv/bin/python3 chinese_segmenter1.py
希望这对您也有用。
答案 1 :(得分:0)
这里也有同样的问题。
对此的大量讨论指向https://github.com/ContinuumIO/anaconda-issues/issues/1984,建议更新到最新的Navigator,并以root身份运行(通过sudo)。
我已经尝试过两者并且看不到任何改变(你可能更幸运)。
https://github.com/Lynten/stanford-corenlp/issues/26引用了corenlp.py的调整版本,声称可以避免这个问题,但我还没有让它工作。
答案 2 :(得分:0)
此问题似乎是特定于Mac OS X的,它不允许Python检查当前端口。
注释corenlp.py文件的这段代码:
if self.port is None:
for port_candidate in range(9000, 65535):
if port_candidate not in [conn.laddr[1] for conn in psutil.net_connections()]:
self.port = port_candidate
break
if self.port in [conn.laddr[1] for conn in psutil.net_connections()]:
raise IOError('Port ' + str(self.port) + ' is already in use.')
替换此行:
self.port = 9999
来源:https://github.com/Lynten/stanford-corenlp/issues/26#issuecomment-445507811
另一种解决方案是使用sudo命令行运行StanfordCoreNLP。