Попробуй, попробуй что-нибудь еще, кроме лучших практик - PullRequest
0 голосов
/ 04 мая 2018

Я пишу сценарий Python, который использует запросы, но в зависимости от того, где выполняется сценарий, запросы могут быть уже доступны по пути, они могут быть доступны только в файловой системе или могут быть недоступны вообще.

Я написал следующее:

import sys
try:
    print "importing using library"
    import requests
except ImportError:
    try:
        print "Try by adding to path first"
        sys.path.insert(0, '<path>')
        import requests
    except ImportError:
        print "Adding via the file system PATH unsuccessful. Requests is required for this script to run"
        sys.exit(1)

Это делает то, что я хочу, но я прочитал, что вложение операторов Try / Except не является хорошей идеей, поэтому мне интересно, есть ли здесь лучший метод, который я должен использовать вместо этого?

Есть ли лучший способ

  • Сначала попробуйте import requests (как будто это доступно, это может быть новая версия, чем в файловой системе)
  • Если это не помогло, добавьте предопределенный каталог в путь и повторите импорт
  • А если это не удастся, то sys.exit(1)

1 Ответ

0 голосов
/ 04 мая 2018

Лучше использовать виртуальную среду для обработки необходимых пакетов https://docs.python.org/3/tutorial/venv.html

...