Включение библиотек в проект. Лучшая практика - PullRequest
1 голос
/ 31 марта 2010

Я пишу приложение с открытым исходным кодом на Python. Мое приложение использует некоторые библиотеки Python с открытым исходным кодом. Эти библиотеки в свою очередь используют другие библиотеки с открытым исходным кодом.

Я собираюсь опубликовать свой код в Sourceforge или в Google Code, но нужно ли включать источники других библиотек? Это хорошая практика? ... или я должен просто записать эту информацию в файл README, информирующий об использовании других необходимых библиотек.

Я поместил все эти библиотеки в подпапку libs в моей директории с исходным кодом. При проверке моего кода в SVN я должен использовать что-то под названием svn: externals для ссылки на другие источники?

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

Мои искренние извинения, если мой вопрос звучит расплывчато, но я довольно растерялся в этом вопросе, и я не знаю, для чего Google.

Спасибо всем.

Ответы [ 5 ]

3 голосов
/ 31 марта 2010

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

Но при этом имейте в виду те внешние зависимости, которые могут существовать в разных версиях или даже конфигурациях. По возможности выбирайте стабильную ветвь (а не моментальные снимки разработки). Если вам действительно нужен определенный снимок библиотеки, то включение его в ваш пакет может быть лучшим выбором, чем принуждение пользователей устанавливать что-то нестандартное в своих системах.

3 голосов
/ 31 марта 2010

Использовать текстовый файл требований пипса.

Просто назовите пакеты [и опционально версию]

Попросите пользователей выполнить следующую команду в README. (Если вы предоставляете скрипт установки, вы должны вызывать его в этом; в этом случае вы также должны использовать Virtualenv )

pip install -r requirements.txt

и все библиотеки, включенные в требования, будут установлены в этой среде.

Вы также можете включить svn path, git path, mercurial path или bzr path в требования к pip.

См. Документацию: http://pip.openplans.org/requirement-format.html

Если все ваши библиотеки доступны из svn, и все пользователи вашего пакета устанавливают его из svn, вы также можете использовать svn externals; Но пипс намного чище.

1 голос
/ 31 марта 2010

Я думаю, что наиболее распространенной практикой является информирование вашего пользователя о том, какие библиотеки и номера версий использует ваш код, в файле типа README.txt. Вы можете создать пакет Python Egg для своего кода, который включает в себя библиотечные зависимости (если у них также есть яйца), который можно загрузить с вашим пакетом после установки. Используйте пакет setuptools для создания яиц Python.

1 голос
/ 31 марта 2010

В целом (для Python): не отправляйте исходные тексты других библиотек, от которых зависит ваш код.

Просто укажите необходимые зависимости (вместе с минимальной требуемой версией, инструкциями по установке и т. Д.) На веб-сайте и в инструкциях, прилагаемых к источнику.

1 голос
/ 31 марта 2010

Обычно вы просто включаете библиотеки в окончательную версию, но не обязательно включаете их в исходные версии.

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