Структурирование проекта и реализация файла в Python - PullRequest
2 голосов
/ 17 февраля 2011

У меня возникли проблемы с пониманием того, как структурировать мои проекты на Python. Я прочитал jcalderone: структура файловой системы проекта Python и искал исходный код CouchApp , но я все еще чувствую себя очень озадаченным.

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

Я думаю, что это определенно то, что люди, пришедшие из других языков, таких как C, C ++, Erlang ... или люди, которые никогда раньше не программировали, могли бы извлечь выгоду.

Ответы [ 3 ]

1 голос
/ 18 февраля 2011

назовите каталог, связанный с вашим проектом. Когда вы делаете релизы, вы должны включать суффикс номера версии: Twisted-2.5.

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

Почему вещи должны быть в одном каталоге? Потому что все так говорят, вот почему.

создайте каталог Twisted / bin и поместите туда свои исполняемые файлы.

Так работает Linux. Исполняемые файлы находятся в каталоге bin. Это позволяет легко поместить этот конкретный каталог в переменную окружения PATH.

Если ваш проект может быть выражен как один исходный файл Python, поместите его в каталог и назовите что-нибудь связанное с вашим проектом. Например, Twisted / twisted.py.

правый. У вас есть / Twisted, / Twisted / bin и /Twisted/twisted.py с вашим действующим, работающим кодом. Куда бы ты еще это положил?

Нет "почему" для этого. Где еще можно это поставить?

Если вам нужно несколько исходных файлов, вместо этого создайте пакет (Twisted / twisted /, с пустым Twisted / twisted / init .py) и поместите в него исходные файлы. Например, Twisted / twisted / internet.py.

Именно так работают пакеты Python. Это каталоги с __init__.py файлами. Учебник довольно ясно об этом.

поместите ваши юнит-тесты в подпакет вашего пакета Twisted / twisted / test /.

Куда еще вы положили свои тесты? Шутки в сторону. Там нет "почему?" к этому. Там нет разумной альтернативы.

добавьте Twisted / README и Twisted / setup.py, чтобы объяснить и установить программное обеспечение, соответственно

правый. Где бы вы их еще положили? Снова. Там нет "почему?" Они идут в верхний каталог, потому что - ну, для этого и нужен каталог. Содержит файлы.

0 голосов
/ 18 февраля 2011

Давайте попробуем ответить на каждое правило:

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

2) Вы должны отделить свои исполняемые файлы от модулей. Это разные звери. А если вы планируете использовать distutils, это облегчит вашу жизнь.

3) Если у вас один модуль, приведенные выше причины не применимы. Так что вы можете упростить свое дерево.

4) Юнит-тесты должны быть тесно связаны с упаковкой. Но они не пакет, поэтому это идеальный случай для подпакета.

0 голосов
/ 17 февраля 2011

Я не эксперт в python, но чтение этой строки из первой ссылки имеет смысл, если вы думаете, что

  • Возможно, в проекте задействованы компьютеры / программы
  • Возможно, в проекте участвуют другие люди

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

Это включает такие темы, как: тестирование, сборка, развертывание, повторное использование, поиск, структура, согласованность ...

Стандарт обеспечивает связь.

...