Добавить системный установочный Python sys.path к моей личной установке Python - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть системная установка python и личная установка python в моем домашнем каталоге. Мой личный питон выходит вперед в моем $PATH, и я обычно запускаю его. Но в системной установке python есть несколько модулей, которые я хочу использовать с моей личной установкой python.

Итак, я хочу добавить sys.path установки системного python к sys.path установки персонального python.

Я прочитал документы и источник модуля сайта и увидел, что для этого можно использовать модули sitecustomize или usercustomize. Но где я застрял, так это как заставить sys.path системного питона присоединяться к персональному питону sys.path.

Функция gensitepackages в модулях сайта, кажется, вычисляет пути, которые будут добавлены к sys.path, но она использует глобальную переменную PREFIXES вместо того, чтобы принимать ее в качестве аргумента, поэтому, насколько я знаю, я могу Не используй это. Добавление префиксов системного Python к PREFIXES также не вариант, так как к моменту загрузки модуля (ов) настройки уже используется PREFIXES для построения пути.

Есть идеи, как это сделать?

Кроме того, я не уверен, стоит ли мне спрашивать об этом в askubuntu / unix & linux. Комментарии?

Редактировать : Думаю, я не совсем понял эту часть. Я хочу, чтобы путь к системному питону был добавлен , чтобы при попытке использовать модули, которые не присутствовали в моем личном питоне, он автоматически переключался на модули системного питона.

Ответы [ 2 ]

1 голос
/ 10 декабря 2011

Python собирается проверить, есть ли установленная переменная окружения $PYTHONPATH.Используйте это для пути других ваших модулей.

используйте export PYTHONPATH="path:locations"

1 голос
/ 10 декабря 2011

Либо задайте переменную среды *1001* PYTHONPATH, либо в каталоге site-packages вашей личной установки Python добавьте один или несколько файлов конфигурации пути (.pth файлы), которые указывают на каталоги Вы хотите добавить из системы установку Python.

ОБНОВЛЕНИЕ: В общем случае, не стоит смешивать модули из разных экземпляров Python. Например, могут быть различия в параметрах конфигурации, используемых для сборки двух Python, которые могут привести к несовместимости в модулях расширения C, созданных для существующей системы Python, но используемых с вашим личным Python. Но, если вы действительно хотите пойти по этому пути, вы можете изменить путь с помощью файлов .pth или изменить модуль site. Или, что может быть более простым и простым в управлении подходом, это использовать virtualenv для создания частной виртуальной среды с использованием системы Python, но затем заменить интерпретатор в среде; см., например, раздел Using Virtualenv without bin/python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...