Я пытался отслеживать количество открытых файлов сокетов Unix с помощью lsof -U | wc -l
lsof -U | wc -l
пока я выполняю этот код:
>>> import zmq
# 1375 Unix socket files
>>> c = zmq.Context()
# 1377 Unix socket files
>>> s = c.socket(zmq.PUSH)
# 1383 Unix socket files
>>> s.close()
# 1381 Unix socket files
>>> c.destroy()
# 1375 Unix socket files
Это почему? Я ожидал, что при подключении сокета будет открыт файл сокета TCP/IPC, но как быть с этими файлами еще до подключения?
Кажется, они все типа "STREAM":
Обновить
Посмотрите ответ @gdlmx, чтобы найти полезный скрипт для воспроизведения этой проблемы.
Кажется, если вы используете Conda для установки pyzmq
все работает как положено. Мне, однако, все еще интересно знать, почему это не будет работать, если вы установите pyzmq
с pip
, который я бы посчитал стандартным способом установки пакета.
Действия по воспроизведению:
С Кондой:
conda create -n foo python=3.6
conda activate foo
pip install pyzmq
python test_script.py
С Python venv
:
python3.6 -m venv venv
source ./venv/bin/activate
pip install pyzmq
python test_script.py