Как установить модули для Python 2.7 на Ubuntu 10.10? - PullRequest
2 голосов
/ 22 февраля 2011

В Ubuntu 10.10 я не могу установить lxml в python 2.7. Вот шаги, которые я делаю.

sudo su -
apt-get install python2.7
apt-get install python-lxml

Обратите внимание, что при запуске установки для пакета python-lxml появилось следующее:

INFO: using unknown version '/usr/bin/python2.7' (debian_defaults not up-to-date?)"

Импорт модуля в python2.6 (версия, которая входит в стандартную комплектацию Ubuntu) работает. Однако импортировать модуль под python2.7 не удается. Так как же установить модули Python для установки Python не по умолчанию?

Ответы [ 4 ]

5 голосов
/ 19 мая 2012

Попробуйте установить libxml2, libxml2-dev, libxslt, libxslt-dev, python-dev.Это заголовочные файлы.Затем попробуйте установить lxml снова.

4 голосов
/ 22 февраля 2011

В Ubuntu 10.10 пакеты python, установленные из репозиториев, устанавливаются в /usr/lib/python2.6/dist-packages, поэтому одним из вариантов является добавление этого пути в переменную среды $ PYTHONPATH, чтобы python2.7 просматривал каталог для библиотек python2.6.

То, что я сделал в Ubuntu 10.10, это добавление

export PYTHONPATH="$PYTHONPATH:/usr/lib/python2.6/dist-packages"

в мой файл .bashrc, а также в мой файл .gnomerc. Это устанавливает $ PYTHONPATH для экземпляров python, запускаемых из оболочки или с рабочего стола gnome. После этого вы сможете импортировать библиотеки Python, которые вы установили, из репозиториев Ubuntu в python2.7.

.bashrc и .gnomerc находятся в вашем домашнем каталоге; вам, возможно, придется создать .gnomerc, если он еще не существует. И еще одно предостережение: у меня была ошибка синтаксиса в моем .gnomerc, которая остановила загрузку рабочего стола gnome, и я не смог войти в систему. Мне пришлось использовать консоль восстановления, чтобы исправить эту синтаксическую ошибку, а затем я мог снова войти в систему.

Мне это кажется немного хакерским, поэтому мне интересно услышать лучшие решения.

0 голосов
/ 24 января 2014

У меня есть один самый простой трюк. Просто откройте менеджер синаптических пакетов типа «python-lxml» в окне поиска, он покажет вам все зависимости и доступные пакеты, выберите пакеты, которые вы хотите установить, и нажмите «Применить».

0 голосов
/ 24 января 2012

Другим решением может быть использование следующего кода:

try:
  from lxml import etree
except ImportError:
  try:
    # Python 2.5
    import xml.etree.cElementTree as etree
  except ImportError:
    try:
      # Python 2.5
      import xml.etree.ElementTree as etree
    except ImportError:
      try:
        # normal cElementTree install
        import cElementTree as etree
      except ImportError:
        try:
          # normal ElementTree install
          import elementtree.ElementTree as etree
        except ImportError:
          print("Failed to import ElementTree from any known place")

[ Источник ]

Это импортирует lxml, если он доступен, или исходное ElementTree в противном случае.

Я использую этот код для своего приложения в Google App Engine (используя Python 2.7): на сервере он будет использовать lxml, на моей машине он будет использовать ElementTree.

...