I tried to experiment with what the nvim documentation (connecting chapter in api.txt) says. The experiment is to use python repl to execute an instruction to nvim listening for socket communication.
What I did
I opened TMUX on the terminal and split the pane into left and right.
In the left pane, execute nvim --listen 127.0.0.1:6666
.
In the right pane, I opened python repl and had it run the following commands in order.
import pynvim
nvim = pynvim.attach('socket', path='127.0.0.1:6666')
nvim.command('echo "Hello"')
When I run this code, I get an error in executing the second line of code. What could be the cause of this?
Investigation
I ran the lsof -i :6666
command to confirm that the neovim process is occupying the port.
The following is the error output.
============================================
Python Repl Output Error
import pynvim
nvim = pynvim.attach('socket',path='127.0.0.1:6666')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/site-packages/pynvim/__init__.py", line 111, in attach
socket_session(path) if session_type == 'socket' else
^^^^^^^^^^^^^^^^^^^^
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/site-packages/pynvim/msgpack_rpc/__init__.py", line 35, in socket_session
return session('socket', path)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/site-packages/pynvim/msgpack_rpc/__init__.py", line 19, in session
loop = EventLoop(transport_type, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/site-packages/pynvim/msgpack_rpc/event_loop/base.py", line 93, in __init__
raise e
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/site-packages/pynvim/msgpack_rpc/event_loop/base.py", line 90, in __init__
getattr(self, '_connect_{}'.format(transport_type))(*args)
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/site-packages/pynvim/msgpack_rpc/event_loop/asyncio.py", line 96, in _connect_socket
self._loop.run_until_complete(coroutine)
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/asyncio/unix_events.py", line 259, in create_unix_connection
await self.sock_connect(sock, path)
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/asyncio/selector_events.py", line 634, in sock_connect
return await fut
^^^^^^^^^
File "/Users/user1/.asdf/installs/python/3.11.1/lib/python3.11/asyncio/selector_events.py", line 642, in _sock_connect
sock.connect(address)
FileNotFoundError: [Errno 2] No such file or directory