stanford-corenlp: psutil._exceptions.AccessDenied: psutil.AccessDenied

I’m trying to use standordCoreNLP and getting an error:

from stanfordcorenlp import StanfordCoreNLP
..
..

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/psutil/_psosx.py", line 330, in wrapper
    return fun(self, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/psutil/_psosx.py", line 515, 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:
nlp = StanfordCoreNLP("/Users/NLP_models/stanford-corenlp-full-2018-01-31")
  File "/Library/Frameworks/Python.framework/Versions/3.6/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 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/psutil/__init__.py", line 2108, in net_connections
    return _psplatform.net_connections(kind)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/psutil/_psosx.py", line 249, in net_connections
    cons = Process(pid).connections(kind)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/psutil/_psosx.py", line 335, in wrapper
    raise AccessDenied(self.pid, self._name)
psutil._exceptions.AccessDenied: psutil.AccessDenied (pid=13041)

I tried to follow suggestions here: https://github.com/ContinuumIO/anaconda-issues/issues/6006 But it didn’t work - any idea?

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Comments: 25 (1 by maintainers)

Most upvoted comments

You have to run your code as root. Please refer to How to run a script as root on Mac OS X? Let me know if you still have problems.

代码里面需要调式,怎么处理这个问题呢?

Apparently this is an OS issue. The following worked for me in MacOS: Change the corenlp.py file:

  1. Remove port selection
  2. Remove port in use check
  3. Manually define a port (e.g., self.port = 9999)

I was getting the same error with python cmd, I just run the python shell with sudo. The problem gets solved.

Apparently this is an OS issue. The following worked for me in MacOS: Change the corenlp.py file:

  1. Remove port selection
  2. Remove port in use check
  3. Manually define a port (e.g., self.port = 9999)

Could you be more specific? I am not so familiar with what you means about “remove port selection and remove port in use check”? Thanks a lot!!!

Remove this portion from the StanfordCoreNLP class:

        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.')

And add this line:

       self.port = 9999