2010-03-31 2 views
1

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

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

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

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

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

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

ответ

3

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

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

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

pip install -r requirements.txt 

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

Вы также можете указать путь svn, git path, mercurial path или bzr path в требованиях к пишу.

Обратитесь к документации: http://pip.openplans.org/requirement-format.html

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

1

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

1

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

1

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

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

3

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

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

Смежные вопросы