Как написать модуль Python?

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

Что у меня есть:

(Просто хочу быть конкретным, насколько это возможно) У меня есть virtualenv ready, он также находится в github , там также есть файл .gitignore для python, плюс библиотека запросов для взаимодействия с REST API. Вот и все.

Вот текущее дерево каталогов

. ├── bin │  └── /the usual stuff/ ├── include │  └── /the usual stuff/ ├── lib │  └── python2.7 │  └── /the usual stuff/ ├── local │  └── /the usual stuff/ └── README.md 27 directories, 280 files 

Я даже не знаю, куда поместить файлы .py, если я когда-либо их создам.

Что я хотел сделать:

Создайте модуль python с возможностью установки «pip install …»

Если возможно, мне нужен общий пошаговый процесс написания модулей Python.

  • Python: как сделать глобальный импорт из функции
  • Перезагрузите модуль в Python 3.4
  • Python: совместное использование общего кода среди семейства скриптов
  • Ошибка импорта модуля python в Django
  • Что такое «необработанное строковое регулярное выражение» и как вы можете его использовать?
  • Прервать выполнение модуля в Python
  • Как использовать пользовательские классы с Apache Spark (pyspark)?
  • Установка модуля python в код
  • 4 Solutions collect form web for “Как написать модуль Python?”

    Модуль – это файл, содержащий определения и утверждения Python. Имя файла – это имя модуля с суффиксом .py

    создайте hello.py затем напишите следующую функцию в качестве ее содержимого:

     def helloworld(): print "hello" 

    Затем вы можете импортировать hello :

     >>> import hello >>> hello.helloworld() 'hello' >>> 

    Чтобы сгруппировать много файлов .py поместите их в папку. Любая папка с __init__.py считается модулем python, и вы можете назвать их пакетом

     |-HelloModule |_ __init__.py |_ hellomodule.py 

    Как правило, вы можете использовать инструкцию import на своем модуле.

    Для получения дополнительной информации см. 6.4. Пакеты .

    Python 3 – ОБНОВЛЕНО 18 ноября 2015 г.

    Нашел приемлемый ответ полезным, но хотел бы расширить несколько пунктов в интересах других, основываясь на моем собственном опыте.

    Модуль: модуль – это файл, содержащий определения и инструкции Python. Имя файла – это имя модуля с добавленным суффиксом .py.

    Пример модуля : предположим, что в текущем каталоге есть один скрипт python, здесь я называю его mymodule.py

    Файл mymodule.py содержит следующий код:

     def myfunc(): print("Hello!") 

    Если мы запустим интерпретатор python3 из текущего каталога, мы можем импортировать и запускать функцию myfunc следующими способами (вы, как правило, просто выбираете одно из следующих):

     >>> import mymodule >>> mymodule.myfunc() Hello! >>> from mymodule import myfunc >>> myfunc() Hello! >>> from mymodule import * >>> myfunc() Hello! 

    Хорошо, так что это было легко.

    Теперь предположим, что вам нужно поставить этот модуль в свою выделенную папку, чтобы предоставить пространство имен модулей, а не просто запускать его ad-hoc из текущего рабочего каталога. Именно здесь стоит объяснить концепцию пакета .

    Пакет : Пакеты – это способ структурирования пространства имен модулей Python с использованием имен «пунктирных модулей». Например, имя модуля AB обозначает подмодуль с именем B в пакете с именем A. Так же, как использование модулей позволяет авторам разных модулей не беспокоиться об именах глобальных переменных друг друга, использование имен точек в пунктах сохраняет авторов из многомодульных пакетов, таких как NumPy или Python Imaging Library, из-за необходимости беспокоиться о именах модулей друг друга.

    Пример пакета : предположим, что у нас есть следующая папка и файлы. Здесь mymodule.py идентичен предыдущему , а __init__.py – пустой файл:

     . └── mypackage ├── __init__.py └── mymodule.py 

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

    Наш текущий рабочий каталог на один уровень выше обычной папки под названием mypackage

     $ ls mypackage 

    Если теперь запустить интерпретатор python3, мы можем импортировать и запустить модуль mymodule.py, содержащий требуемую функцию myfunc, следующими способами (вы обычно просто выбираете одно из следующего):

     >>> import mypackage >>> from mypackage import mymodule >>> mymodule.myfunc() Hello! >>> import mypackage.mymodule >>> mypackage.mymodule.myfunc() Hello! >>> from mypackage import mymodule >>> mymodule.myfunc() Hello! >>> from mypackage.mymodule import myfunc >>> myfunc() Hello! >>> from mypackage.mymodule import * >>> myfunc() Hello! 

    Предполагая, что Python 3, есть отличная документация на: Модулях

    Что касается соглашений об именах для пакетов и модулей, общие рекомендации приведены в PEP-0008 – см. Имена пакетов и модулей

    Модули должны иметь короткие имена с прописными буквами. Подчеркивания могут использоваться в имени модуля, если это улучшает читаемость. Пакеты Python также должны иметь короткие имена всех строчных букв, хотя использование подчеркиваний не рекомендуется.

    После того, как вы определили выбранные вами команды, вы можете просто перетащить сохраненный файл в папку Lib в файлах программы python.

     >>> import mymodule >>> mymodule.myfunc() 

    Создайте файл с именем «hello.py»

    Если вы используете Python 2.x

     def func(): print "Hello" 

    Если вы используете Python 3.x

     def func(): print("Hello") 

    Запустите файл. Затем вы можете попробовать следующее:

     >>> import hello >>> hello.func() Hello 

    Если вы хотите немного усердно, вы можете использовать следующее:

    Если вы используете Python 2.x

     def say(text): print text 

    Если вы используете Python 3.x

     def say(text): print(text) 

    См. Раздел в скобках рядом с определением? Это важно. Это тот, который вы можете использовать в определении.

    Текст. Вы можете использовать его, когда хотите, чтобы программа говорила, что вы хотите. Согласно его названию, это текст. Надеюсь, вы знаете, что означает текст. Это означает «слова» или «предложения».

    Запустите файл. Затем вы можете попробовать следующее, если используете Python 3.x:

     >>> import hello >>> hello.say("hi") hi >>> from hello import say >>> say("test") test 

    Для Python 2.x – я думаю, что то же самое с Python 3? Без понятия. Исправьте меня, если я допустил ошибку на Python 2.x (я знаю Python 2, но я использую Python 3)

    Python - лучший язык программирования в мире.