pandasql
Devuan(またはDebian)システムにシステム全体のPythonパッケージをインストールしたいと思います。 Pythonパッケージのインデックスにあるが(dpkg)パッケージがないようです。実際には存在しないとしましょう。
これでこの操作を試みると、pip install pandasql
仮想環境を使用するように求められます。
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
...しかし、仮想環境は私が望むものではありません。foo
システム全体にインストールしたいです。どうすればいいですか?
ノート:
- 可能であれば、おおよその答えよりももっと一般的に答えてください
pandasql
。 - Devuan Excalibur(~= Debian Trixie), Python 3.11.6, x86_64 マシン
ベストアンサー1
Debianがこれを許可しないという事実はどこかから来ています:pip
システム全体のインストールは設計上のシステム管理Pythonのインストールと互換性がありません。ピップ自身も悟った--system
インストールを「デフォルト」から「ユーザーがそれを指定し、自分が実行している作業を知りたい」にダウングレードする場合。 Debian は、このように仕事を台無しにすることができることをよく知っているので、そうすることができるpip
ソフトウェアを提供していません。
理論については多すぎる(より多くの背景)なぜDebianがこれを防ぐのか。
今練習してみましょう:
どうですか?
したがって、あなたがしなければならないことは、pip install --system pandasql
Debianと互換性があり安全な方法で行い、依存関係を更新するときにすべてが破損しないようにすることです。これには、pipパッケージから依存関係のDebianパッケージ名を推測し、依存関係が変更されたときに正しく機能しないパッケージが残らないようにすることが含まれます。
当然、Debianのソフトウェアのインストール方法はDebianパッケージを利用することです。更新が可能で、dpkg
互いのファイルを上書きしないようにする依存関係のリストがあり、完全に削除される可能性があります。全体的に、全体的なシステムの観点から見ると、pip
パッケージよりも優れています。あなたはそれが欲しい!
あなたのために困難な作業を行う小さなヘルパープログラムがあります。sudo apt install pypi2deb
使用することは難しくありません。
mkdir package_pandasql
cd package_pandasql
# Try an initial build
py2dsp --build pandasql
最後のステップが失敗し、表示error: Unmet build dependencies
された場合は、続行するためにインストールする必要がある項目が表示されます。私:
sudo apt install python3-all python3-numpy python3-pandas python3-setuptools python3-sqlalchemy
インストールを実行してもう一度やり直してください。
py2dsp --build pandasql
成功!
package_pandasql/result/
これでインストールできるインストール可能なパッケージが作成されましたsudo apt install ./result/python3-pandasql*.deb
。