syncal pip3 install 'syncall[caldav, tw]'
khal을 설치한 후 더 이상 작동하지 않습니다.
에러 메시지:
yoga-x1:~$ **khal**
Traceback (most recent call last):
File "/usr/bin/khal", line 2, in <module>
from khal.cli import main_khal
File "/usr/lib/python3/dist-packages/khal/cli.py", line 35, in <module>
from .settings import InvalidSettingsError, get_config
File "/usr/lib/python3/dist-packages/khal/settings/__init__.py", line 1, in <module>
from .settings import get_config # noqa
File "/usr/lib/python3/dist-packages/khal/settings/settings.py", line 26, in <module>
import xdg.BaseDirectory
ModuleNotFoundError: No module named 'xdg.BaseDirectory'
현재 Python 버전: 파이썬 3.10.12
Kaja에는 다음이 필요합니다. 파이썬 3.8+
이 문제를 어떻게 해결할 수 있나요?
답변1
질문
동일한 라이브러리의 여러 버전이 설치되어 있습니다. 기본 설치 프로그램(일명 pip
)은 자체 버전을 설치하려고 시도했지만 올바르게 개입하여 Ubuntu에 전 세계적으로 사용 가능한 자체 라이브러리 세트가 있다고 제안했기 때문에 xdg
실패했습니다 . apt
사실상 /usr/lib/python-3/dist-packages (0.27)/
이제 두 개의 경쟁 패키지 관리자가 있고 패키지 관리자는 동일한 라이브러리를 설치하려고 합니다. 이런 일이 발생하면 이러한 라이브러리가 필요한 응용 프로그램은 이미 설치된 라이브러리가 아닌 라이브러리를 찾으려고 하기 때문에 혼란스러워집니다.
이 문제를 해결하려면 제거해야 합니다.모든 것필요한 경우 apt를 수정하고 pip
apt를 통해 여러 Python 버전을 설치한 다음 자체 환경에 pip를 올바르게 다시 설치하고 pipenv
해당 환경에 패키지를 올바르게 설치합니다 pip
.
고정시키다
따라서 수정 사항 목록을 관리 가능한 부분으로 나누면 다음과 같습니다.
pip
모든 패키지와 함께 제거합니다.- 운영체제와 운영체제를 제대로 확인 하고 설치한 것이 무엇이든 문제
apt
가 있는 경우를 대비해 수정하세요 .pip
- 제거할 때 제거한 패키지가 있는지 Ubuntu 저장소를 확인하십시오.
pip
- 패키지를 찾으면 해당 패키지를 설치하세요.
- 제거할 때 제거한 패키지가 있는지 Ubuntu 저장소를 확인하십시오.
- Python의 버전 확인을 수행하고 다음을 사용하여 3.x 버전을 올바르게 추가하십시오.데드 스네이크 PPA
- 새로운 3.x 버전의 Python을 사용하고 싶다고 운영 체제에 알립니다.
update-alternatives
- 새로운 3.x 버전의 Python을 사용하고 싶다고 운영 체제에 알립니다.
pip
올바른 설치에서apt
.pipenv
APT가 설치된 Python 버전의 라이브러리가 PIP가 설치된 버전과 "충돌"하지 않도록 별도의 환경을 만듭니다 .
포함 명령 수정
이것이 귀하의 문제에 대한 나의 해결책입니다. 아마도 더 간단한 방법이 있을 것입니다. 그러나 저는 이미 완료된 작업을 되돌리는 것을 선호하므로 처음부터 시작하여 거기서부터 작업합니다.
- 설치된 모든 패키지 제거
pip
: 원하는 제거 방법을 선택하십시오.pip로 설치된 모든 패키지를 제거하는 방법은 무엇입니까?또는Pip을 사용하여 모든 Python 패키지를 한 번에 제거하는 방법은 무엇입니까?. - APT가 모니터링하는 패키지도 제거했을 수 있으므로 다시 설치해야 하는지 살펴보겠습니다.
sudo apt update --fix-missing
노트: 우리는 결과가 전혀 반환되지 않기를 원합니다. 이 명령은 저장소 업데이트를 수행하고 손상된 부분을 건너뜁니다 **
- 위 명령이 일반 업데이트 출력이 아닌 목록을 반환하는 경우 문제는 다음과 같습니다
sudo apt install -f
.
노트: 패키지 이름 없이 -f를 사용하면 시스템에 설치된 모든 패키지를 검색하여 손상되거나 제거된 항목을 수정하는 설치 옵션을 해결하려고 합니다.
- 다음 명령을 사용하여 이전에 연결된 Deadsnakes PPA를 추가합니다.
sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update
노트: 이번 단계는임의로 선택할 수 있는하지만 추천합니다.
- 설치된 Python 패키지 및 Python 라이브러리를 호스트 운영 체제에 설치된
virtualenv
패키지 및 Python 라이브러리와 분리하려면 Python을 만듭니다 .pip
보다Python 사용자 매뉴얼: venv 노트: venv에는 >=Python 3.3이 필요합니다.
사이드 노트
나는 당신이 사용하려는 대부분의 패키지가 khal
이런 방식으로 사용 가능하다고 믿습니다. 즉, apt
운영 체제에 설치된 Python을 통해 패키지가 관리되고 사용된다는 의미입니다. apt search
찾는 데 사용하세요 .