Не удается импортировать пакет python, установленный с pacman в Arch Linux

Всякий раз, когда я пытаюсь импортировать пакет Python, который я установил через pacman, я получаю сообщение об ошибке

ModuleNotFoundError: No module named [packageName]

В прошлом я просто обходил эту проблему, устанавливая нужные мне пакеты через pip, который отлично работает. Но в данном случае это не выход

Вот кое-что, что может быть полезно знать - я не уверен, какие части этой информации актуальны, но тем не менее:

  • Запуск python говорит мне, что моя версия Python 3.6.4 |Anaconda, Inc.
  • Выход which python равен /home/username/miniconda3/bin/python
  • У меня есть строка export PATH="/home/username/miniconda3/bin:$PATH" в моем ~/.bashrc
  • Запуск import sys, print(sys.path) дает ['', '/home/username/miniconda3/bin', '/home/username/miniconda3/lib/python36.zip', '/home/username/miniconda3/lib/python3.6', '/home/username/miniconda3/lib/python3.6/lib-dynload', '/home/username/miniconda3/lib/python3.6/site-packages', '/home/username/miniconda3/lib/python3.6/site-packages/Mako-1.0.7-py3.6.egg', '/home/username/miniconda3/lib/python3.6/site-packages/IPython/extensions', '/home/username/.ipython']

(Если вы не догадались, я очень новичок в Arch и не особо разбираюсь в Python, поэтому буду благодарен за любую помощь)


person Wanderer    schedule 15.02.2018    source источник
comment
Что возвращает python -c import sys; print(sys.path)?   -  person Francesco Montesano    schedule 15.02.2018
comment
pacman — это менеджер пакетов для пакетов Linux. используйте pip для установки пакетов Python.   -  person MEE    schedule 15.02.2018
comment
@MEE: pacman предоставляет пакеты Python, и в их установке и использовании нет ничего плохого. И вы можете одновременно использовать пакеты, установленные с pacman и pip (используя опцию --user). Кроме того, некоторые пакеты (почти) невозможно установить с помощью pip (см. PyQt4).   -  person Francesco Montesano    schedule 15.02.2018
comment
@MEE В archlinux предпочтительнее использовать pacman для установки пакетов python, когда они доступны в репозитории арки.   -  person Al.G.    schedule 10.01.2021


Ответы (1)


Интерпретатор Anaconda Python изолирован от системы. Если вы установите что-либо для всей системы, ваш Python Anaconda не сможет его найти.

Если вы хотите/нужно использовать Anaconda, у вас есть два варианта:

  • используйте 1_
  • используйте pip, который поставляется с Anaconda (вероятнее всего, это та версия, которую вы используете)

В противном случае не используйте Anaconda: удалите /home/username/miniconda3/bin/python из PATH и используйте системный питон (должно быть что-то вроде /usr/bin/python). Системный питон знает, где искать пакеты, установленные вашим системным менеджером пакетов, например. packman)

person Francesco Montesano    schedule 15.02.2018
comment
Проблема с переходом на /usr/bin/python заключается в том, что у меня есть ряд пакетов, таких как Pytorch, которые можно установить только через conda. Есть ли способ получить к ним доступ после переключения? - person Wanderer; 15.02.2018
comment
Теоретически возможно, но вы напрашиваетесь на неприятности. Вы должны быть в состоянии обмануть python, установив PYTHONPATH, чтобы указать на пакеты, которые вы хотите использовать. Но Anaconda поставляет свои собственные библиотеки (файлы .so и .a), и они могут быть несовместимы с библиотеками, поставляемыми archlinux, и есть большая вероятность, что вы столкнетесь с конфликтами библиотек. Кроме того, по моему опыту, использование PYTHONPATH вызывает больше проблем, чем пользы. - person Francesco Montesano; 15.02.2018