Azure / Django / Ubuntu | проблема импорта tkinter и libtk8.6.so
Когда Azure собирает и развертывает Python3.9 Django/Django-Rest WebApp, происходит сбой при запуске.
Ошибка в вопросе (полные журналы ниже)
2022-03-08T21:13:30.385999188Z File "/tmp/8da0147da65ec79/core/models.py", line 1, in <module>
2022-03-08T21:13:30.386659422Z from tkinter import CASCADE
2022-03-08T21:13:30.387587669Z File "/opt/python/3.9.7/lib/python3.9/tkinter/__init__.py", line 37, in <module>
2022-03-08T21:13:30.387993189Z import _tkinter # If this fails your Python may not be configured for Tk
2022-03-08T21:13:30.388227101Z ImportError: libtk8.6.so: cannot open shared object file: No such file or directory
Я встречал другие ответы на этот вопрос о необходимости убедиться, что tkinter установлен sudo apt-get python3-tk, который я добавил в yml файл развертывания
Хотя, похоже, проблема все еще существует. Возврат к предыдущему коду для развертывания прошел успешно и единственная функция, которая была добавлена в приложение, это Celery. Не уверен, имеет ли это какое-либо отношение к делу или нет.
Я добавляю установку tk/tkinter в неправильной последовательности?
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python version
uses: actions/setup-python@v1
with:
python-version: "3.9"
- name: Create and start virtual environment
run: |
python -m venv venv
source venv/bin/activate
- name: Install TK dependency
run: |
sudo apt-get update
sudo apt-get install python3-tk
- name: Install dependencies
run: pip install -r requirements.txt
- name: Upload artifact for deployment jobs
uses: actions/upload-artifact@v2
with:
name: python-app
path: |
.
!venv/
Журнал приложения выводится ниже...
Tkinter уже включен в образ ubuntu-latest. Никаких особых настроек не требуется.
jobs:
verify-tkinter:
name: verify-tkinter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python version
uses: actions/setup-python@v1
with:
python-version: "3.9"
- name: show tk version
run: |
python -c "import tkinter;print(tkinter.TkVersion)"
Если эта ошибка возникает после развертывания, вам необходимо установить tkinter в вашей среде развертывания, которая работает отдельно от GitHub Actions.
На вашем сервере работает Ubuntu 20 и, убедитесь, что установлен пакет tk, который предоставляет libtk8.6.so необходимый файл
apt install -y tk
Tkinter уже включен в образ ubuntu-latest. Никаких особых настроек не требуется.
jobs:
verify-tkinter:
name: verify-tkinter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python version
uses: actions/setup-python@v1
with:
python-version: "3.9"
- name: show tk version
run: |
python -c "import tkinter;print(tkinter.TkVersion)"
Если эта ошибка возникает после развертывания, вам необходимо установить tkinter в вашей среде развертывания, которая работает отдельно от GitHub Actions.
На вашем сервере работает Ubuntu 20 и, убедитесь, что установлен пакет tk, который предоставляет libtk8.6.so необходимый файл
apt install -y tk
Я столкнулся с этой ошибкой из-за простой ошибки.
IDE добавила from turtle import up в мой .py, а я не заметил