Mistakenly installed dozens of python packages in global pip

When I started using Garuda Linux years ago I did not know how to use virtual environments or how to manage multiple python versions, i.e., poetry and pyenv. So every time I was starting a new project or testing any project from internet, I would install all packages on global pip. Just imagine the mess.

Now I don’t have any idea if it’s possible to remove all globally installed pip packages which are not being used by garuda system itself. Does anyone know if it’s possible? The issue is, every time that garuda-update runs, it is updating every single python package on the system, taking from minutes to hours, depending on my internet connection.

I would like to remove all python packages that were installed by the user, i.e., that are not used by the system. How could I do that? Is that even possible?

Thanks

╰─λ pip list
Package                   Version
------------------------- ----------------------------------
absl-py                   2.0.0
aiohttp                   3.9.1
aiosignal                 1.3.1
aiosqlite                 0.19.0
alembic                   1.9.4.dev0
annotated-types           0.6.0
anyio                     3.7.1
apparmor                  3.1.6
argcomplete               2.0.0
asgiref                   3.7.2
astor                     0.8.1
asttokens                 2.4.1
astunparse                1.6.3
attrs                     23.1.0
autocommand               2.2.2
autograd                  1.6.2
bcrypt                    4.0.1
beautifulsoup4            4.12.2
black                     23.10.1
bleach                    6.1.0
blinker                   1.6.3
boto3                     1.33.1
botocore                  1.33.1
btrfsutil                 6.6.2
build                     1.0.3
CacheControl              0.13.1
cachetools                5.3.2
cachy                     0.3.0
certifi                   2023.11.17
cffi                      1.16.0
charset-normalizer        3.3.2
cleo                      2.1.0
click                     8.1.7
colorama                  0.4.6
contourpy                 1.2.0
crashtest                 0.4.1
cryptography              41.0.7
cupshelpers               1.0
cycler                    0.12.1
Cython                    3.0.6
databases                 0.7.0
dbus-python               1.3.2
decorator                 5.1.1
Deprecated                1.2.14
dirty-equals              0.6.0
discord.py                2.3.2
distlib                   0.3.7
distro                    1.8.0
dnspython                 2.4.2
docutils                  0.20.1
dulwich                   0.21.7
ecdsa                     0.18.0
et-xmlfile                1.1.0
evdev                     1.6.1
exceptiongroup            1.1.3
executing                 2.0.0
fastapi                   0.104.1
fastjsonschema            2.19.0
fastnumbers               5.1.0
filelock                  3.12.4
Flask                     2.3.3
Flask-Cors                4.0.0
flatbuffers               23.5.26
fonttools                 4.46.0
frozenlist                1.4.0
future                    0.18.3
gast                      0.3.3
geocoder                  1.38.1
google-auth               2.23.0
google-auth-oauthlib      1.1.0
google-pasta              0.2.0
gpg                       1.23.2
gps                       3.25
greenlet                  3.0.1
grpcio                    1.59.3
h11                       0.14.0
h5py                      3.10.0
html5lib                  1.1
httptools                 0.6.1
hypothesis                6.92.0
icecream                  2.1.3
idna                      3.4
importlib-metadata        5.0.0
importlib-resources       6.1.1
inflect                   7.0.0
iniconfig                 2.0.0
injector                  0.21.0
installer                 0.7.0
ipython                   8.18.1
itsdangerous              2.1.2
jaraco.classes            3.3.0
jaraco.context            4.3.0
jaraco.functools          3.9.0
jaraco.text               3.11.1
jedi                      0.19.1
jeepney                   0.8.0
Jinja2                    3.1.2
jmespath                  1.0.1
jsonschema                4.20.0
jsonschema-specifications 2023.11.2
keras                     2.12.0
Keras-Applications        1.0.8
Keras-Preprocessing       1.1.2
keyring                   24.2.0
Kivy                      2.2.1
kiwisolver                1.4.5
lark                      1.1.7
lensfun                   0.3.4
LibAppArmor               3.1.6
libfdt                    1.7.0
libinput-gestures-qt      0.3
libtorrent                2.0.9
libvirt-python            9.10.0
lit                       16.0.6.dev0
lockfile                  0.12.2
lxml                      4.9.2
Mako                      1.2.4
Markdown                  3.5.1
MarkupSafe                2.1.3
matplotlib                3.8.1
matplotlib-inline         0.1.6
mercurial                 6.6
ml-dtypes                 0.3.1
moddb                     0.10.0
more-itertools            10.1.0
msgpack                   1.0.5
multidict                 6.0.4
mypy-extensions           1.0.0
natsort                   8.4.0
netsnmp-python            1.0a1
nftables                  0.1
numpy                     1.26.2
oauthlib                  3.2.2
OpenCC                    1.1.7
openpyxl                  3.1.2
opt-einsum                3.3.0
optimus-manager           1.5
ordered-set               4.1.0
orjson                    3.9.10
packaging                 23.2
pandas                    1.5.3
paramiko                  2.11.1
parso                     0.8.3
passlib                   1.7.4
pathspec                  0.12.1
peewee                    3.16.3
pexpect                   4.8.0
pickleshare               0.7.5
Pillow                    10.1.0
pip                       23.3.1
pkginfo                   1.9.6
platformdirs              4.1.0
playsound                 1.3.0
pluggy                    1.3.0
ply                       3.11
plyer                     2.1.0
poetry                    1.7.1
poetry-core               1.8.1
poetry-plugin-export      1.5.0
pooch                     1.8.0
prompt-toolkit            3.0.41
protobuf                  4.25.1
psutil                    5.9.6
psycopg2                  2.9.9
ptyprocess                0.7.0
pure-eval                 0.2.2
py3nvml                   0.2.7
pyasn1                    0.4.8
pyasn1-modules            0.2.8
pybind11                  2.11.1
PyBluez                   0.30
pycairo                   1.25.1
pycparser                 2.21
pycups                    2.0.1
pycurl                    7.45.2
pydantic                  2.5.2
pydantic_core             2.14.5
pydantic-extra-types      2.1.0
pydantic-settings         2.1.0
pydot                     1.4.2
PyGithub                  1.59.1
Pygments                  2.17.2
PyGObject                 3.46.0
PyJWT                     2.8.0
PyNaCl                    1.4.0
PyOpenGL                  3.1.6
pyOpenSSL                 23.3.0
pyparsing                 3.1.1
pypng                     0.20231004.0
pyproject_hooks           1.0.0
PyQt5                     5.15.10
PyQt5-sip                 12.13.0
pyrate-limiter            3.1.0
pyrsistent                0.19.3
pyserial                  3.5
PySide2                   5.15.11
PySide6                   6.6.1
pysmbc                    1.0.25.1
PySocks                   1.7.1
pytest                    7.4.3
python-barcode            0.15.1
python-dateutil           2.8.2
python-dotenv             1.0.0
python-editor             1.0.4
python-escpos             2.2.0
python-jose               3.3.0
python-xlib               0.33
pytz                      2023.3.post1
pyusb                     1.2.1
pyxdg                     0.28
PyYAML                    6.0.1
qrcode                    7.4.2
QtPy                      2.4.0
rapidfuzz                 3.4.0
ratelim                   0.1.6
reactivex                 4.0.4
referencing               0.31.1
Reflector                 2023.6.28.0.36.1
reportlab                 3.6.12
requests                  2.31.0
requests-oauthlib         1.3.1
requests-toolbelt         1.0.0
rpds-py                   0.10.6
rsa                       4.9
s3transfer                0.8.0
SciPy                     1.11.4
scrypt                    0.8.20
SecretStorage             3.3.3
setuptools                69.0.0
setuptools-scm            8.0.4
sh                        1.14.3
shellingham               1.5.0.post1
shiboken2                 5.15.11
shiboken6                 6.6.1
shiboken6-generator       6.6.1
six                       1.16.0
skia-pathops              0.8.0
smbus                     1.1
sniffio                   1.3.0
sortedcontainers          2.4.0
sounddevice               0.4.6
soupsieve                 2.5
srt                       3.5.3
stack-data                0.6.3
starlette                 0.33.0
systemd-python            235
TBB                       0.2
tensorboard               2.15.0
tensorboard-data-server   0.8.0a0
tensorboard-plugin-wit    1.8.1
tensorflow                2.15.0
tensorflow-estimator      2.15.0
termcolor                 2.3.0
tomli                     2.0.1
tomlkit                   0.12.2
toolz                     0.12.0
torbrowser-launcher       0.3.6
traitlets                 5.14.0
trove-classifiers         2023.12.1
typing_extensions         4.9.0
ufw                       0.36.2
urllib3                   1.26.18
uvicorn                   0.24.0
uvloop                    0.19.0
validate-pyproject        0.13.post1.dev0+gb752273.d20230520
vboxapi                   1.0
virtualenv                20.25.0
wcwidth                   0.2.9
webencodings              0.5.1
websockets                10.4
Werkzeug                  2.3.8
wheel                     0.40.0
wrapt                     1.14.1
wxPython                  4.2.1
yarl                      1.9.2
zipp                      3.17.0
╰─λ garuda-inxi
System:
Kernel: 6.6.6-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=1841fbdb-0a5a-497a-86d3-67c2ef2f6c76 rw rootflags=subvol=@
quiet rd.udev.log_priority=3 vt.global_cursor_default=0
systemd.unified_cgroup_hierarchy=1 loglevel=3 ibt=off
Desktop: KDE Plasma v: 5.27.10 tk: Qt v: 5.15.11 wm: kwin_x11 vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Laptop System: Avell High Performance product: A65 MOB v: Standard
serial: <superuser required>
Mobo: Avell High Performance model: Avell A65 MOB v: Standard
serial: <superuser required> UEFI: American Megatrends LLC. v: N.1.07AVE00
date: 07/23/2021
Battery:
ID-1: BAT0 charge: 76.7 Wh (99.0%) condition: 77.5/93.5 Wh (82.9%)
volts: 12.2 min: 11.4 model: standard type: Li-ion serial: <filter>
status: not charging
ID-2: hidpp_battery_0 charge: 13% condition: N/A volts: 3.7 min: N/A
model: Logitech G703 LIGHTSPEED Wireless Gaming Mouse w/ HERO type: N/A
serial: <filter> status: N/A
ID-3: hidpp_battery_1 charge: 13% condition: N/A volts: 3.7 min: N/A
model: Logitech G703 LIGHTSPEED Wireless Gaming Mouse w/ HERO type: N/A
serial: <filter> status: charging
CPU:
Info: model: 11th Gen Intel Core i7-11800H bits: 64 type: MT MCP
arch: Tiger Lake gen: core 11 level: v4 note: check built: 2020
process: Intel 10nm family: 6 model-id: 0x8D (141) stepping: 1
microcode: 0x4E
Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
L1: 640 KiB desc: d-8x48 KiB; i-8x32 KiB L2: 10 MiB desc: 8x1.2 MiB
L3: 24 MiB desc: 1x24 MiB
Speed (MHz): avg: 2343 high: 4579 min/max: 800/4600 scaling:
driver: intel_pstate governor: performance cores: 1: 4494 2: 802 3: 1599
4: 800 5: 4494 6: 3377 7: 3871 8: 800 9: 4579 10: 869 11: 801 12: 801
13: 4495 14: 4122 15: 799 16: 800 bogomips: 73728
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel TigerLake-H GT1 [UHD Graphics] vendor: Tongfang Hongkong
driver: i915 v: kernel arch: Gen-12.1 process: Intel 10nm built: 2020-21
ports: active: eDP-1 empty: DP-1 bus-ID: 00:02.0 chip-ID: 8086:9a60
class-ID: 0300
Device-2: NVIDIA GA106M [GeForce RTX 3060 Mobile / Max-Q]
vendor: Tongfang Hongkong driver: nvidia v: 545.29.06
alternate: nouveau,nvidia_drm non-free: 545.xx+ status: current (as of
2023-10; EOL~2026-12-xx) arch: Ampere code: GAxxx process: TSMC n7 (7nm)
built: 2020-2023 pcie: gen: 1 speed: 2.5 GT/s lanes: 16 link-max: gen: 4
speed: 16 GT/s ports: active: none off: HDMI-A-1 empty: DP-2,DP-3,eDP-2
bus-ID: 01:00.0 chip-ID: 10de:2520 class-ID: 0300
Device-3: Chicony Integrated IR Camera driver: uvcvideo type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-13:6 chip-ID: 04f2:b71a
class-ID: 0e02 serial: <filter>
Display: x11 server: X.Org v: 21.1.10 with: Xwayland v: 23.2.3
compositor: kwin_x11 driver: X: loaded: modesetting,nvidia dri: iris
gpu: i915,nvidia,nvidia-nvswitch display-ID: :0 screens: 1
Screen-1: 0 s-res: 5120x1440 s-dpi: 96 s-size: 1354x381mm (53.31x15.00")
s-diag: 1407mm (55.38")
Monitor-1: HDMI-A-1 mapped: HDMI-1-0 note: disabled pos: primary,bottom-r
model: LG (GoldStar) 25UM58G serial: <filter> built: 2015 res: 2560x1080
dpi: 96 gamma: 1.2 size: 677x290mm (26.65x11.42") diag: 730mm (28.8")
modes: max: 2560x1080 min: 640x480
Monitor-2: eDP-1 pos: top-left model: BOE Display 0x0974 built: 2021
res: 2560x1440 hz: 165 dpi: 189 gamma: 1.2 size: 344x194mm (13.54x7.64")
diag: 395mm (15.5") ratio: 16:9 modes: 2560x1440
API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0
drv: nvidia device: 1 drv: iris device: 3 drv: swrast surfaceless:
drv: nvidia x11: drv: iris inactive: gbm,wayland,device-2
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 23.2.1-arch1.2
glx-v: 1.4 direct-render: yes renderer: Mesa Intel UHD Graphics (TGL GT1)
device-ID: 8086:9a60 memory: 61.08 GiB unified: yes
API: Vulkan v: 1.3.269 layers: 8 device: 0 type: integrated-gpu name: Intel
UHD Graphics (TGL GT1) driver: mesa intel v: 23.2.1-arch1.2
device-ID: 8086:9a60 surfaces: xcb,xlib device: 1 type: discrete-gpu
name: NVIDIA GeForce RTX 3060 Laptop GPU driver: nvidia v: 545.29.06
device-ID: 10de:2520 surfaces: xcb,xlib device: 2 type: cpu name: llvmpipe
(LLVM 16.0.6 256 bits) driver: mesa llvmpipe v: 23.2.1-arch1.2 (LLVM
16.0.6) device-ID: 10005:0000 surfaces: xcb,xlib
Audio:
Device-1: Intel Tiger Lake-H HD Audio vendor: Tongfang Hongkong
driver: snd_hda_intel v: kernel alternate: snd_sof_pci_intel_tgl
bus-ID: 00:1f.3 chip-ID: 8086:43c8 class-ID: 0403
Device-2: NVIDIA GA106 High Definition Audio vendor: Tongfang Hongkong
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 01:00.1 chip-ID: 10de:228e class-ID: 0403
Device-3: Fifine Microphone driver: hid-generic,snd-usb-audio,usbhid
type: USB rev: 1.1 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-2.2:11
chip-ID: 3142:5060 class-ID: 0300
API: ALSA v: k6.6.6-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Tiger Lake PCH CNVi WiFi driver: N/A modules: iwlwifi
bus-ID: 00:14.3 chip-ID: 8086:43f0 class-ID: 0280
Device-2: Realtek RTL8125 2.5GbE vendor: Tongfang Hongkong driver: r8169
v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1 port: 3000 bus-ID: 2e:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp46s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
IF-ID-1: anbox0 state: down mac: <filter>
IF-ID-2: br-cc173ea2f690 state: up speed: 10000 Mbps duplex: unknown
mac: <filter>
IF-ID-3: docker0 state: down mac: <filter>
IF-ID-4: veth06fa054 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-5: veth22f853f state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-6: veth3483823 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-7: veth494590f state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-8: veth74fdc29 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-9: vetha475092 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-10: vethc5fbcd5 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-11: vethd710e7d state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-12: vethd803d8e state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-13: vethfcbe86e state: up speed: 10000 Mbps duplex: full
mac: <filter>
Bluetooth:
Device-1: Intel AX201 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-14:7 chip-ID: 8087:0026
class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
rfk-block: hardware: no software: yes address: <filter> bt-v: 5.2 lmp-v: 11
status: discoverable: no pairing: no
Drives:
Local Storage: total: 3.73 TiB used: 601.28 GiB (15.8%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:1 vendor: A-Data model: SX8200PNP
size: 1.86 TiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 42B9T6TB temp: 41.9 C
scheme: GPT
ID-2: /dev/nvme1n1 maj-min: 259:0 vendor: A-Data model: SX8200PNP
size: 1.86 TiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 42B9T6TB temp: 38.9 C
scheme: GPT
Partition:
ID-1: / raw-size: 1.86 TiB size: 1.86 TiB (100.00%) used: 601.28 GiB (31.5%)
fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:3
ID-2: /boot/efi raw-size: 260 MiB size: 256 MiB (98.46%)
used: 563 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:2
ID-3: /home raw-size: 1.86 TiB size: 1.86 TiB (100.00%)
used: 601.28 GiB (31.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:3
ID-4: /var/log raw-size: 1.86 TiB size: 1.86 TiB (100.00%)
used: 601.28 GiB (31.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:3
ID-5: /var/tmp raw-size: 1.86 TiB size: 1.86 TiB (100.00%)
used: 601.28 GiB (31.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:3
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 62.54 GiB used: 15.28 GiB (24.4%)
priority: 100 comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 16
dev: /dev/zram0
Sensors:
System Temperatures: cpu: 64.0 C mobo: N/A
Fan Speeds (rpm): N/A
Info:
Processes: 647 Uptime: 5d 14h 17m wakeups: 0 Memory: total: 64 GiB
note: est. available: 62.54 GiB used: 23.44 GiB (37.5%) Init: systemd v: 255
default: graphical tool: systemctl Compilers: gcc: 13.2.1 alt: 12
clang: 16.0.6 Packages: pm: dpkg pkgs: 0 pm: pacman pkgs: 2369 libs: 541
tools: pamac,paru Shell: fish v: 3.6.4 running-in: konsole inxi: 3.3.31
Garuda (2.6.19-2):
System install date:     2021-09-13
Last full system update: 2023-12-14 ↻
Is partially upgraded:   No
Relevant software:       timeshift NetworkManager mkinitcpio nvidia-dkms
Windows dual boot:       Probably (Run as root to verify)
Failed units:            anbox-container-manager.service systemd-networkd-wait-online.service

Talk:Python - ArchWiki may help. I don’t know anything about Python or PIP, but I recall when the schnitzel hit the fan about how it was installed.

Unfortunately it does not help. It does not tell how I can find which python packages are used by garuda-linux. It does not tell me how I can discover which python packages can be deleted from my system without destroying the whole system in the process.

That’s why installing Python packages in this manner is highly discouraged. It results in a situation somewhat similar to trying to unscramble scrambled eggs.

4 Likes

Is there a way to know which python packages are used by garuda linux? Or is this not a thing?

That’s the only information I need, because then I will remove all other python packages.

Check the Garuda packages list.
https://iso.builds.garudalinux.org/iso/garuda/dr460nized/231029/garuda-dr460nized-linux-zen-231029.pkgs.txt

Use browser search function or copy and use kate search function.

3 Likes

Off topic, but wanted to say thanks for linking this. I looked for this list a while ago but got distracted I guess.

About a year ago now (dang time flies), I messed up pacman while battling issues with jamesdsp. A bunch of important packages were listed as orphans. No idea how I managed that one, but I suspect it had something to do with reinstalling all packages a few times. Could have been anything though, was new and didn’t know what I was doing (still mostly don’t, lol). Anyways, just got rid of 67 packages thanks to your post, and all important packages marked as explicitly installed :smile:

2 Likes

Thanks this link helped me a lot.

This is what I have been doing to clean up my system:

pacman -Qqe | grep python

This command returns a lot of python packages, I removed most of them using pamac remove package-name

pip list

SciPy appeared on the list, then I execute this:

╰─λ pacman -Qs SciPy
    local/python-scipy 1.11.4-1
    Open-source software for mathematics, science, and engineering

Now I know I can do pamac remove python-scipy

I’m doing this manually… but;

I have had another idea.
I believe you guys are not installing python packages globally.

Could you guys show me what appear from your terminal when you type pip list? Then from your list I can compare to my list and uninstall the ones which are not present on your list (assuming you guys are not installing random python packages globally)

I already deleted a lot of packages but there are still some dozens packages which I’m unsure.

Actually, pip commands won’t even run on a stock installation because python-pip is not installed by default. All of the default packages are installed with Pacman.

5 Likes

I think he meant, that he didn’t use any python environment for separating packages, from global pip?

Does this mean if I uninstall everything from pip list my system won’t be affected?

Yes, that is more or less the main point of the topic.

Um…I’m going to say no, it does not necessarily mean that. This is a very loaded question.

I will say this:

  • Running pip list will only show Python packages that have been installed using the Python package manager, pip;
  • It does not display packages installed with other package managers, including Pacman;
  • All of the packages installed by default in a fresh installation of Garuda Linux are installed with Pacman.

Ipso facto, nothing which is installed by default in Garuda Linux will be removed when you uninstall packages you see in pip list.

Whether or not removing those packages will cause any issues with your system will depend on what sort of infrastructure they are bound to. Perhaps you should make a backup before you remove them in case you run into any issues.

2 Likes

Hm, hold on. I just did a pip list on my box and it’s 388 packages.
I guess that’s what happens when I try out every package under the sun just because.
But the thing is, I’m sure I never installed global python packages with pip, and I clearly recognize many that come from system packages (ufw for instance).
So I don’t think it’s exactly safe to remove them all and forget, but quite likely reinstalling all (pacman) packages immediately afterwards will fix the mess.
In case it isn’t clear enough though, I don’t really know.

1 Like

Hmm, that is curious. :thinking: Many of the “duplicate” packages have a capitalized letter or something which differentiates them from the Pacman package, but I see ufw is an example where they appear to be identically named.

Is ufw installed with Pacman as well?

pacman -Qs ufw

If so, do you have the same version number for the pip version as the Pacman one?

I am no Python expert, but I think it’s normal for people to end up with a ton more pip packages than what they explicitly install because the dependencies are resolved through Python instead of Pacman. At least that is my rough understanding.

2 Likes

Being cautious appears that it will be time-and-effort taking. Perhaps to the point that a data backup and re-install would be less so?

Yeah, sure, I know that “theoretically” it can be done on an Arch system, but Garuda is far from that–way more complex.

EDIT: Or here’s a thought. Adversely, if everything otherwise works, keep running it. Data backups, sure, but keep running it until it no longer works. :wink: :question:

1 Like

From pip list I get ufw 0.36.2, from pacman -Qs it’s ufw 0.36.2-2.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.