Как сделать мой Python-модуль доступным для системы в Linux?

Я сделал себе небольшой модуль, который, как мне кажется, очень много использует. Всякий раз, когда это необходимо, я просто копирую его в папку, в которой я хочу ее использовать. Поскольку я ленив, я хотел установить его так, чтобы я мог его вызывать из любого места, даже в интерактивную подсказку. Поэтому я немного прочитал об установке здесь и пришел к выводу, что мне нужно скопировать файл в /usr/local/lib/python 2.7/site-packages. Это, однако, похоже, ничего не делает.

Кто-нибудь знает, где мне нужно скопировать мой модуль, чтобы он работал в целом?

Ответ 1

Существуют методы установки модулей Python в системном масштабе. Вы можете взглянуть на distutils. Хороший учебник для distutils2 (текущая версия) можно найти здесь.

Вам в основном нужно написать файл setup.py, который сообщает distutils, что делать. Тогда вы можете просто

python setup.py install

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

Ответ 2

Ответ: все о разрешениях.

Недостаточно разместить файл в нужном месте, например, такой экземпляр:/usr/local/lib/python2.7/dist-packages, вам также необходимо убедиться, что файл может быть прочитан процессом, который вы 'в этом случае выполняется python.

Убедитесь, что "другие" пользователи имеют доступ на чтение к файлу. Откройте консоль bash и выполните следующее:

sudo chmod o+r "yourmodule.py"
[Introduce the password]

После этого снова перейдите на python и попробуйте импорт:

import "yourmodule"

Пока путь, в котором находится файл .py, присутствует в PYTHONPATH +, файл читается, тогда вам должно быть разрешено его импортировать.

Ответ 3

Если вы используете Ubuntu, скопируйте файлы в /usr/local/lib/python2.7/dist-packages. Следующая команда покажет вам, где скопировать.

python -c "from distutils.sysconfig import *; print(get_python_lib())"

Если вы используете модуль только один, скопируйте файлы в ~/.local/lib/python2.7/site-packages.

Ответ 4

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

# ~/.bashrc file
export PYTHONPATH+=:/some/dir

Ответ 5

Пара вещей.

Сначала модуль должен (я считаю), находиться в директории, соответствующей имени модуля.

Поместите этот каталог модуля в один из каталогов в PYTHONPATH (я использую /usr/lib/pymodules/pythonV.x/). Вы можете найти подходящую директорию в пути, используя

import sys
print(sys.path)

из приглашения python.