psutil.AccessDenied при использовании StanfordCoreNLP в Pycharm? - PullRequest
0 голосов
/ 02 ноября 2018
# coding=utf-8

from stanfordcorenlp import StanfordCoreNLP

nlp = StanfordCoreNLP(r'/Users/silas/stanford-corenlp/', lang='zh')

sentence = '清华大学位于北京。'
print nlp.word_tokenize(sentence)
print nlp.pos_tag(sentence)
print nlp.ner(sentence)
print nlp.parse(sentence)
print nlp.dependency_parse(sentence)

nlp.close()

Я использую Mac. Инструменты Java, NLKT и Stanforcorenlp готовы. Когда я тестировал проект, вышла ошибка.

Traceback (most recent call last):
  line 5, in <module>
    nlp = StanfordCoreNLP(r'/Users/silas/stanford-corenlp/', lang='zh')
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/stanfordcorenlp/corenlp.py", line 79, in __init__
    if port_candidate not in [conn.laddr[1] for conn in psutil.net_connections()]:
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psutil/__init__.py", line 2120, in net_connections
    return _psplatform.net_connections(kind)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psutil/_psosx.py", line 255, in net_connections
    cons = Process(pid).connections(kind)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psutil/_psosx.py", line 347, in wrapper
    raise AccessDenied(self.pid, self._name)
psutil._exceptions.AccessDenied: psutil.AccessDenied (pid=25422)

Я полагаю, это потому, что проект Pycharm не запущен от имени пользователя root. Но как я могу настроить IDE для решения проблемы?

1 Ответ

0 голосов
/ 06 ноября 2018

К сожалению, если вы посмотрите на проект psutil в _psosx.py, под net_connections, строка 243 говорит:

Примечание: в macOS это не будет работать с AccessDenied, если процесс не принадлежит пользователю root.

Это означает, что вам нужно будет работать от имени root, выполнив что-то вроде sudo pycharm.sh.

Если вы не хотите запускать всю IDE от имени пользователя root, на SO есть несколько примеров того, как вы можете запустить определенный скрипт с привилегиями суперпользователя. Например, смотрите Отладка в pyCharm с привилегиями sudo .

...