Alpine es un dolor de cabeza para la distribución de la mayoría de los paquetes de Python que envían extensiones de C/C++ (código escrito en C/C++ que se compila en un objeto compartido y se carga en Python a través de una biblioteca de funciones externas ). El motivo es que PEP 513 , cuya definición de portabilidad entre distribuciones de Linux, manylinux1
, se basa en glibc/glibcxx. Dado que Alpine usa musl libc, no se puede instalar ninguna rueda compatible con manylinux1
en Alpine. Entonces, cuando ejecuta pip install cryptography
, la rueda con las extensiones compiladas se filtra y pip
intenta construir el paquete con todas las extensiones C desde la fuente.
Esta es la forma preferida y fue mencionada por @GracefulRestart en los comentarios; utilícelo si no necesita la última versión del paquete. Alpine ofrece el paquete cryptography
preconstruido , actualmente es el cryptography<=2.1.4
. Instalarlo conapk
:
$ apk add py-cryptography
Si necesita la última versión, puede intentar compilarla desde el código fuente instalándola con pip
.
Necesitará el compilador y las bibliotecas con archivos de encabezado :musl, OpenSSL, libffi y el mismo Python:
$ apk add gcc musl-dev libffi-dev openssl-dev python3-dev
pip install pkgname
oculta el registro de compilación de forma predeterminada. Para ver el registro de compilación completo, agregue -vvv
para aumentar la verbosidad. (Opcional )Además, puede prohibir explícitamente la instalación de ruedas manylinux1
agregando --no-binary=pkgname
para que se aplique la compilación desde el origen.
$ pip install cryptography -vvv --no-binary=cryptography
Хорошо, я нашел ответ на свой вопрос, думаю, его можно применить и к другим языкам, кроме португальского.
С помощью этой команды выполняется раскладка клавиатуры LightDM на португальский язык:
localectl set-x11-keymap pt
Я сделал это как root
, и я думаю, что это правильный путь, но я считаю, что вы можете сделать это и с обычным пользователем.
Я нашел это на форуме Fedora .
Чтобы set-x11-keymap
работал, сначала нам нужно установить пакет libxkbcommon
, без этого вы получите сообщение об ошибке.
Я нашел его на форуме ArchLinux .
ОБНОВЛЕНИЕ
Я задавал этот вопрос также на форуме Arch Linux, и этот ответ тоже решает проблему, добавляя в файл /etc/X11/xorg.conf.d/20 -keyboard.conf, эти конфиги:
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "pt"
Option "XkbModel" "pc105"
EndSection
и перезагрузить...