Добавить каталог в Python sys.path, чтобы он включался каждый раз, когда я использую Python - PullRequest
7 голосов
/ 19 сентября 2011

В настоящее время, когда я пытаюсь сослаться на некоторый библиотечный код, я делаю это в верхней части моего файла python:

import sys
sys.path.append('''C:\code\my-library''')
from my-library import my-library

Тогда my-library будет частью sys.path так же долгокак сеанс активен.Если я начинаю новый файл, я должен не забыть снова включить sys.path.append.

Я чувствую, что должен быть намного лучший способ сделать это.Как я могу сделать my-library доступным для каждого скрипта Python на моем компьютере с Windows без необходимости использовать sys.path.append каждый раз?

Ответы [ 4 ]

15 голосов
/ 19 сентября 2011

Просто добавьте этот путь в переменную окружения PYTHONPATH. Для этого перейдите в Панель управления / Система / Дополнительно / Переменная среды и в разделах «Пользовательские переменные» проверьте, есть ли у вас уже PYTHONPATH. Если да, выберите его и нажмите «Изменить», если нет, нажмите «Новый», чтобы добавить его.

Пути в PYTHONPATH должны быть разделены знаком ";".

4 голосов
/ 19 сентября 2011

Если это библиотека, которую вы используете в своем коде, вы должны установить ее как таковую.Правильно упакуйте его и либо установите в каталоге site-packages, либо, если это характерно для определенных проектов, используйте virtualenv и установите его только в соответствующих virtualenvs.

3 голосов
/ 19 сентября 2011

Для этого вам понадобится файл sitecustomize.py (или usercustomize.py), в котором вы будете вносить изменения в sys.path ( исходные документы по питону ).

Создайте файл sitecustomize.py в каталоге \ Lib \ site-packages вашей установки python, и он будет импортироваться при каждом запуске интерпретатора python.

0 голосов
/ 19 сентября 2011

Если вы делаете это в интерактивном режиме, лучше всего установить ipython и настроить параметры запуска для включения этого кода. Если вы намереваетесь включить его в сценарий, запускаемый из интерпретатора, то же самое относится и к нему, поскольку он будет иметь доступ к вашему пространству имен.

С другой стороны, автономный скрипт должен не включать это автоматически. В будущем вы или другой сопровождающий придете, и весь код должен быть очевиден и не зависеть от конкретной настройки машины. Лучше всего создать файл скелета для новых проектов, который включает в себя все основные функциональные возможности, которые вам нужны. Это, наряду с часто используемыми фрагментами, решит проблему.

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

...