Для Linux Mint 18.3 32-bit и Python 3.5.2 плюс виртуальная среда Python3.
У меня проблемы с установкой Python 3 notify-send . Цель состоит в том, чтобы отобразить текст в «пузыре уведомлений»:
У меня уже есть скрипт BASH, который делает то, что я хочу. Я надеялся воспроизвести это непосредственно в Python3, а не прибегать к подпроцессу, который вызывает экземпляр командной строки BASH notify-send.
Я создал папку для виртуального Python 3environment, в этой папке использовали python3 -m venv gui_experiments
для создания виртуальной среды, затем использовали source env/gui_experiments/activate
для активации этого venv. Получил запрос, который характеризует активный venv ...
В этой виртуальной среде pip сообщил мне, что я должен обновить pip. Обновленная версия уже существует вне виртуальной среды, но не внутри нее. Когда в venv я пытался использовать командную строку, предложенную pip - sudo -H pip install --upgrade pip
- pip сообщил мне, что самая последняя версия уже установлена. Чтобы разорвать цикл upgrade-> уже установленный , я вместо этого использовал python3 -m pip3 install --upgrade pip3
, чтобы заставить pip обновиться до версии 19.3.1 (действующей на эту дату).
pip search notify-send | grep ^notify-send
возвращает:
уведомление-отправка (0.0.13)
Тип sudo -H python3 -m pip install notify-send
. Длинное сообщение об ошибке ==
rbv@rbv-F80Q ~/PythonLessons/gui_experiments $ sudo -H python3 -m pip install notify-send
Collecting notify-send
Using cached https://files.pythonhosted.org/packages/d1/e7/e495fda6524db0c59f3a4db05e3a54b96eae9afe4436d921dda3a7cb60ab/notify_send-0.0.13-py3-none-any.whl
Collecting pycairo>=1.18.1; sys_platform == "linux"
Using cached https://files.pythonhosted.org/packages/48/20/5e83af98eb897935bf7dc39455e892ba866feebb9b7c3b392982866f9958/pycairo-1.18.1.tar.gz
Collecting PyGObject>=3.34.0; sys_platform == "linux"
Using cached https://files.pythonhosted.org/packages/46/8a/b183f3edc812d4d28c8b671a922b5bc2863be5d38c56b3ad9155815e78dd/PyGObject-3.34.0.tar.gz
Installing build dependencies ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 /usr/local/lib/python3.5/dist-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-oxsfyhvu/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo
cwd: None
Complete output (30 lines):
Collecting setuptools
Using cached https://files.pythonhosted.org/packages/6a/9a/50fadfd53ec909e4399b67c74cc7f4e883488035cfcdb90b685758fa8b34/setuptools-41.4.0-py2.py3-none-any.whl
Collecting wheel
Using cached https://files.pythonhosted.org/packages/00/83/b4a77d044e78ad1a45610eb88f745be2fd2c6d658f9798a15e384b7d57c9/wheel-0.33.6-py2.py3-none-any.whl
Collecting pycairo
Using cached https://files.pythonhosted.org/packages/48/20/5e83af98eb897935bf7dc39455e892ba866feebb9b7c3b392982866f9958/pycairo-1.18.1.tar.gz
Installing collected packages: setuptools, wheel, pycairo
Running setup.py install for pycairo: started
Running setup.py install for pycairo: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-x0kren5a/pycairo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-x0kren5a/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-h73tgq7k/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-oxsfyhvu/overlay --compile
cwd: /tmp/pip-install-x0kren5a/pycairo/
Complete output (15 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-i686-3.5
creating build/lib.linux-i686-3.5/cairo
copying cairo/__init__.py -> build/lib.linux-i686-3.5/cairo
copying cairo/__init__.pyi -> build/lib.linux-i686-3.5/cairo
copying cairo/py.typed -> build/lib.linux-i686-3.5/cairo
running build_ext
Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cairo' found
Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-x0kren5a/pycairo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-x0kren5a/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-h73tgq7k/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-oxsfyhvu/overlay --compile Check the logs for full command output.
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 /usr/local/lib/python3.5/dist-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-oxsfyhvu/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo Check the logs for full command output.
(gui_experiments)
rbv@rbv-F80Q ~/PythonLessons/gui_experiments $
Казалось, что
pycairo может быть проблемой. Но синаптические списки
python3-cairo установлены. Поэтому я попытался
sudo -H pip install pycairo
. Сообщение об ошибке ==
Collecting pycairo
Using cached https://files.pythonhosted.org/packages/48/20/5e83af98eb897935bf7dc39455e892ba866feebb9b7c3b392982866f9958/pycairo-1.18.1.tar.gz
Installing collected packages: pycairo
Running setup.py install for pycairo ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-t3zwxfq6/pycairo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-t3zwxfq6/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-8mfgxfm6/install-record.txt --single-version-externally-managed --compile
cwd: /tmp/pip-install-t3zwxfq6/pycairo/
Complete output (15 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-i686-3.5
creating build/lib.linux-i686-3.5/cairo
copying cairo/__init__.py -> build/lib.linux-i686-3.5/cairo
copying cairo/__init__.pyi -> build/lib.linux-i686-3.5/cairo
copying cairo/py.typed -> build/lib.linux-i686-3.5/cairo
running build_ext
Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cairo' found
Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-t3zwxfq6/pycairo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-t3zwxfq6/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-8mfgxfm6/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
Попытался повторить эти шаги после деактивации виртуальной среды и перехода в другой каталог. Те же проблемы.
На данный момент я в тупике. Я не понимаю некоторые сообщения об ошибках (например, Возможно, вам следует добавить каталог, содержащий `cairo.pc ').
У меня никогда не было столько трудностей или длительныхСообщения об ошибках, используя pip или python3 -m
для установки библиотек.
Мне интересно, возникают ли проблемы, потому что я использую 32-битный Linux?