2015-10-22 4 views
0

Я пытаюсь создать пакет для приложений на python. Он использует sklearn, pandas, numpy, boto и некоторые другие научные модули от anaconda. Будучи очень неопытным с упаковкой python, у меня есть различные вопросы:упаковка научного проекта в python

1- У меня есть некоторые конфиденциальные файлы .py в моем проекте, которые я не хочу, чтобы кто-нибудь мог видеть. В java я бы определил частные файлы и классы, но я полностью потерял в python. Какова «хорошая практика» для работы с этими частными модулями? Может ли кто-нибудь связать мне какой-то учебник?

2- Каков наилучший способ для упаковки моих приложений? Я не хочу публиковать что-либо на Pypi, мне нужно только его выполнить в Google App Engine, например. Я пробовал автономный пакет с PyInstaller, но я не смог закончить его из-за numpy и других scipy пакетов, которые затрудняют его выполнение. Есть ли простой способ пакетного создания проектов python, созданных с помощью anaconda?

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

+0

Что вы имеете в виду с конфиденциальной или частной? Код Python всегда отображается на компьютере, на котором вы его устанавливаете. – faph

+1

Если вы уже используете Anaconda, я бы предложил изучить сборку пакетов conda http://conda.pydata.org/docs/building/bpp.html. У меня нет опыта работы с Google App Engine, там могут быть конкретные рабочие процессы развертывания. – faph

ответ

1
  1. Конвенция должна вести с одним подчеркиванием _, если что-то внутреннее. Обратите внимание, что это соглашение. Если кто-то действительно хочет его использовать, они все равно могут. Ваш код не является строго конфиденциальным.

  2. Посмотрите на http://python-packaging-user-guide.readthedocs.org/en/latest/. Вам не нужно публиковать в pypi для создания пакета Python, который использует такие инструменты, как pip. Вы можете создать проект с файлом setup.py и requirements.txt, а затем использовать pip для установки вашего пакета из любого места, где у вас есть (например, локальный каталог или репозиторий на github). Если вы примете этот подход, то pip установит все перечисленные вами зависимости.

  3. Если вы хотите использовать ваш пакет, просто включите его в requirements.txt и параметр install_requires в setup.py (см http://python-packaging-user-guide.readthedocs.org/en/latest/requirements/). Например, если вы установите свой пакет с pip install https://github/myname/mypackage.git, вы можете включить https://github/myname/mypackage.git в свой файл в будущие проекты.

+0

На пункте 2 следует помнить, что многие из необходимых научных модулей могут быть сложными для установки из источника с использованием 'pip' и т. Д., В зависимости от платформы. Вот почему я предлагаю маршрут упаковки конды. – faph