Внедрение библиотеки Python в моем собственном пакете
Хо можно ли "встроить" библиотеку Python в свой собственный пакет Python?
Возьмите Библиотека запросов, например.
Как я могу интегрировать его в свой собственный пакет, цель которого - позволить мне запускать мое приложение на разных компьютерах без фактической установки запросов на всех, но иметь его в той же папке, что и мой пакет?
Возможно ли это?
Извините, если вопрос звучит глупо, но я довольно новичок в Python...
Спасибо!
Ответы
Ответ 1
Если это чистая библиотека python (не скомпилированные модули), вы можете просто поместить библиотеку в папку в своем проекте и добавить эту папку в путь поиска модуля. Вот пример проекта:
|- application.py
|- lib
| `- ...
|- docs
| `- ...
`- vendor
|- requests
| |- __init__.py
| `- ...
`- other libraries...
В этом примере в папке vendor
содержатся все сторонние модули. Файл application.py
будет содержать следующее:
import os
import sys
# Add vendor directory to module search path
parent_dir = os.path.abspath(os.path.dirname(__file__))
vendor_dir = os.path.join(parent_dir, 'vendor')
sys.path.append(vendor_dir)
# Now you can import any library located in the "vendor" folder!
import requests
Ответ 2
Если вам нужно всего лишь запустить приложение, возможно, pyinstaller упаковка - лучший вариант.
Он создаст единый пакет со всем, что необходимо, включая Python, чтобы избежать зависимостей от системы, в которой вы работаете.
Ответ 3
Не отвечая на ваш вопрос. Вы можете посмотреть setuptools
. Используя этот механизм распределения пакетов, вы можете описать свои зависимости, и когда ваш пакет будет установлен, все зависимые пакеты также будут установлены. Вы должны создать файл setup.py
в верхней части структуры вашего пакета, подобный:
from setuptools import setup, find_packages
setup(
name = 'MyPackage',
version = '1.0',
packages = find_packages(),
...
install_requires = ['requests'],
...
)
это будет установлено пользователем
python setup.py install
Запросы также будут автоматически установлены.