расположение файла и setuptools конфигурация для бита Python многоязычной библиотеки

Таким образом, мы пишем платформе полнотекстового поиска MongoDb. MongoDB является в значительной степени собственным JavaScript, таким образом, мы записали библиотеку JavaScript сначала, и он работает.

Теперь я пытаюсь записать платформу Python для него, которая будет частично в Python, но частично использовать тех, которые то же сохранило функции JavaScript - функции JavaScript являются внутренней частью библиотеки. С другой стороны, платформа JavaScript не зависит от Python. так как они довольно переплетены, кажется, что это - стоящее хранение их в том же репозитории.

Я пытаюсь разработать способ структурировать целый проект дать платформам JavaScript и Python равное состояние (возможно, рубиновый драйвер или безотносительно в будущем?), но все еще позволяют библиотеке Python устанавливать приятно.

В настоящее время это похоже на это: (упрощенный немного)

javascript/jstest/test1.js
javascript/mongo-fulltext/search.js
javascript/mongo-fulltext/util.js
python/docs/indext.rst
python/tests/search_test.py
python/tests/__init__.py
python/mongofulltextsearch/__init__.py
python/mongofulltextsearch/mongo_search.py
python/mongofulltextsearch/util.py
python/setup.py

Я отскочил несколько файлов для простоты, но Вы в общих чертах понимаете; это' в значительной степени стандартный проект Python... за исключением того, что это зависит critcally ona целый набор JavaScript, который хранится в одноуровневом дереве каталогов.

Какова предпочтительная установка для контакта с такого рода вещью когда дело доходит до setuptools? Я могу разработать, как использовать package_data и т.д. для установки файлов данных, которые живут в моем проекте Python согласно setuptools документам.

Проблема состоит в том, если я хочу использовать setuptools для установки материала, включая файлы JavaScript снаружи Python кодируют дерево и затем также получают доступ к ним последовательным способом, когда я разрабатываю код Python и когда это easy_installредактор на чей-то сайт.

Это - поддерживаемое поведение для setuptools? Я должен использовать дорожного бетоноукладчика или distutils2 или Распределять или что-то? (основной distutils не является опцией; целая причина я делаю это, состоит в том, чтобы включить отслеживание требований), Как я должен читать содержание тех файлов в сценарии Python?

1
задан dan mackinlay 23 May 2010 в 11:50
поделиться

1 ответ

Короткий ответ заключается в том, что ни один из инструментов распространения Python не будет делать то, что вы хотите, именно так, как вы этого хотите. Даже если вы используете функцию data_files distutils, вам все равно придется копировать файлы javascript в каталог проекта Python (то есть где-то в том же каталоге, что и ваш setup.py).

Учитывая это, вы можете а также просто скопируйте файлы .js в свой пакет (то есть вместе с mongofulltextsearch / init .py) как часть процесса сборки и используйте package_data или include_package_data = True.

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

2
ответ дан 3 September 2019 в 00:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: