Где сохранить мои собственные сценарии, чтобы мои скрипты python могли получить доступ к модулю в каталоге по умолчанию?

Это будет вопрос с несколькими частями, но конечная цель такова, что я могу получить доступ к настраиваемым модулям/библиотекам/функциям, например, как я это делаю на родном питоне.

Где хранятся не-родные, но pip установленные библиотеки python и как настроить мой интерпретатор /IDE для доступа к ним?

Мои пользователи script все начинается с:

#!/usr/bin/env python -*- coding: utf-8 -*- 

Какая разница между доступом от /usr/bin и /usr/bin/env, будут ли выполняться модули, созданные по заказу, как собственные модули/пакеты python?

Должны ли мои пользовательские скрипты стать пакетами? если да, то каким образом я могу сделать код пользователя, проверяет на ImportError и устанавливает/настраивает эти пакеты в try-except?, например.

try:
  import module_x
except ImportError:
  # Install package, but how to do it within the script?
  pass

Есть ли место для хранения моих собственных скриптов, чтобы он импортировался как родная библиотека? Если да, то где? Каковы последствия?

Ответы

Ответ 1

Ну, вы задали много вопросов; Я обращусь к теме в строке темы.

Вы можете поместить файлы модулей Python в любом месте, а затем import без проблем, если они находятся в пути поиска модуля. Вы можете влиять на путь поиска модуля, изменяя переменную среды PYTHONPATH в своей оболочке перед вызовом Python или изменяя переменную sys.path внутри вашего кода.

Итак, если вы установили /home/alvas/python/lib/module_x.py и /usr/local/python/lib/foo.py, вы можете запустить:

PYTHONPATH=/home/alvas/python/lib:/usr/local/python/lib /home/alvas/scripts/bar.py

а затем утверждения

import module_x
import foo

должен просто работать.

В качестве альтернативы вы можете сделать что-то подобное в своем коде:

#!/usr/bin/env python
import sys
sys.path.append('/home/alvas/python/lib')
import module_x
sys.path.append('/usr/local/python/lib')
import foo

Любой подход будет работать.