Python 2.6.1: проверка наличия импорта - PullRequest
3 голосов
/ 12 марта 2012

Я написал служебный скрипт для Mac OSX некоторых моих коллег с Python 2.6.1. Так как на них не установлены все необходимые модули, у меня есть условие импорта try-кроме:

try:
    import argparse
except ImportError:
    print "argparse module missing: Please run 'sudo easy_install argparse'"
    sys.exit(1)

Я почти уверен, что есть более изящные способы справиться с этим. Есть идеи?

Ответы [ 3 ]

7 голосов
/ 31 октября 2012

Ваш лучший способ - заморозить ваш код на Python со всеми необходимыми модулями и распространить его в двоичном виде;у меня это работало с Windows и Linux, но с Linux, убедитесь, что у вас есть совместимая версия glibc

. Есть несколько инструментов для замораживания Mac OS X, но я ими не пользовался.Я использовал только инструменты для Windows и Linux.

проверьте эту ссылку для получения дополнительной информации

http://hackerboss.com/how-to-distribute-commercial-python-applications/

4 голосов
/ 12 марта 2012

Это распространенная идиома, но вы можете использовать setuptools и pip для автоматизации установки зависимостей ( пример ).

1 голос
/ 12 марта 2012

Это на самом деле лучший способ сделать это. Тот же подход используется, например, для выбора разных библиотек json в зависимости от того, что установлено на компьютере:

try:
    import simplejson as json
except ImportError:
    import json
...