Как сделать мой 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.