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バージョン: Python 3.10.12
Kajaには以下が必要です。 Python 3.8+
この問題をどのように解決できますか?
答え1
質問
同じライブラリの複数のバージョンがインストールされています。デフォルトのインストーラ(別名pip
)は独自のバージョンをインストールしようとしましたが、正しく介入し、Ubuntuに世界中で利用可能な独自のライブラリセットがあることを提案したためxdg
失敗しました。apt
実際、/usr/lib/python-3/dist-packages (0.27)/
2つの競合するパッケージマネージャがあり、パッケージマネージャは同じライブラリをインストールしようとしています。これが発生すると、これらのライブラリを必要とするアプリケーションは、すでにインストールされているライブラリではなくライブラリを見つけようとするため、混乱します。
この問題を解決するには削除する必要があります。すべて必要に応じてaptを変更し、aptpip
を介して複数の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
検索に使用します。