Как работать с библиотеками в Python?
приведу пример.
Я начинаю работать над новым проектом. И там мне нужны уже другие библиотеки. Предположим что я создал новую папку PROJECT в которой будет 1 модуль MY_MODULE.PY и основной файл запуска RUN.PY
и когда я пытаюсь подключить файл MY_MODULE.PY в RUN.PY то интерпретатор его не видит, зато видит все те библиотеки которые я установил с прошлого проекта (через pip).
- Вопрос задан более двух лет назад
- 484 просмотра
Комментировать
Решения вопроса 2
Mark Chigrin @Black_and_green
Developer — chigrin.xyz
Для каждого проекта в python создаётся отдельно виртуальное окружение, куда помещаются все зависимости и нужная версия питона.
Удобнее всего с этим работать с помощью утилит для сборки, управления зависимостями и прч. Я предпочитаю poetry.
Можно использовать просто venv, но это не так удобно.
Также возможно у вас проблемы из-за невеправильного создания модулей, импорта или названий(лучше не называть модули так же как стандартные)
Почитайте документацию, возможно найдёте ошибку
Ответ написан более двух лет назад
Нравится 2 1 комментарий
19 полезных библиотек для Python

Библиотеки — это готовые модули кода, которые используют разработчики, чтобы не писать один и тот же код несколько раз. В этой статье делимся подборкой самых полезных библиотек Python, рассказываем, как их установить, а также коротко описываем возможности.
К началу 2023 года Python остается одним из самых популярных языков программирования. Кроме простоты и легкости синтаксиса, он также отличается множеством подключаемых библиотек. В Python их более 137000 , и практически каждый день это число растет.
Стандартные библиотеки Python
Стандартные библиотеки Python — это модули кода, которые доступны разработчикам без дополнительной установки
Например, библиотека math в Python дает возможность выполнять самые разные математические функции: находить целое от вещественного числа (math.trunc(x)) , вычислять логарифмы (math.log(x[, base])) или значение числа (math.pi) . А библиотека os Python необходима для работы с файловой системой компьютера и операционной системой.
Другие стандартные библиотеки — random и datetime . Первая дает инструменты для работы со случайными числами, а вторая незаменима для программ, которые оперируют временем и датами.
Стандартные библиотеки Python не требуют отдельного подключения. Чтобы использовать их функционал, достаточно просто в начале программы написать import и название библиотеки.
import math
Как подключить библиотеку Python
Большинство других библиотек Python требуют отдельного подключения. Но сделать это не сложно. При использовании современной версии Python 2.7.9 и выше или 3.4 и выше необходимый для подключения библиотек инструмент — система управления библиотеками PIP – устанавливается автоматически. Поэтому, чтобы установить библиотеку, вам достаточно сделать всего три шага:
- Войдите в командную строку.
- На Mac OS нажмите клавиши Command + Space , введите в появившемся окне слово Terminal и нажмите Enter /
- На Windows нажмите клавиши Win + R , введите в появившемся окне cmd и нажмите Enter .
- Чтобы проверить, установлен ли у вас PIP , а заодно обновить его до последней версии, введите в командную строку следующие команды и нажмите Enter :
- Для Mac OS: pip install –U pip
- Для Windows: python -m pip install -U pip
- Теперь просто введите pip install и название библиотеки. Например, pip install pandas или pip install theano , а затем нажмите Enter . Файлы библиотеки автоматически загрузятся на компьютер, и она установится.
Узнать, какие библиотеки Python подойдут под ваши задачи, можно из этой статьи и с помощью агрегатора библиотек — pypi.org .
Разберем несколько библиотек для решения задач из разных сфер — веб-разработки, Data Science, дата-аналитики, визуализации данных и создания Telegram-ботов. Под описанием каждой библиотеки приведем код для установки.
Станьте профессиональным Python-разработчиком с нуля за 10 месяцев На Хекслете есть профессия «Python-разработчик». Пройдите ее, чтобы изучить самый популярный язык программирования, освоить его фреймворки и создать большое портфолио с проектами на GitHub.
Библиотеки Python для веб-разработки
Среди веб-разработчиков на Python чаще работают бэкендеры — возможно, вы слышали про популярные у них фреймворки Django и Tornado. Еще на этом языке делают парсеры — программы для сбора данных с разных страниц в интернете.
HTTPX
HTTPX — одна из главных библиотек для бэкенд-разработчиков. В отличие от другой популярной библиотеки — Requests , HTTPX позволяет работать не только с синхронными, но и с асинхронными HTTP-запросами. Эта библиотека также поддерживает современную версию протокола — HTTP2 и довольно проста в использовании.
Код для установки:
pip install httpx
Celery
Celery нужна для работы с фоновыми задачами. Она позволяет выстраивать их в очередь и распределять выполнение между разными процессорами и устройствами. Это помогает уменьшить нагрузку на процессор и выполнять трудоемкие задачи без ущерба производительности. Больше всего Celery полезна для разработчиков приложений.
pip install celery
Scrapy
Scrapy – это библиотека, с которой удобно собирать данные для вашего приложения. Ее используют для написания поисковых роботов (веб-краулеров) и других алгоритмов для сбора данных. Она поддерживает асинхронность и поэтому позволяет быстро и эффективно решать самые разные задачи: от загрузки веб-страниц до их обработки и сохранения в различных форматах.
pip install scrapy
Dash
Dash — это библиотека Python для работы над веб-приложениями. Ее отличает доступный инструментарий для создания графических интерфейсов (GUI), через которые пользователь может работать с данными. А еще в ней удобно делать приложения с интерактивными диаграммами, графиками, дашбордами.
pip install dash
Изучите Django и начните работать с базами данных с помощью ORM Чтобы создавать сайты и веб-сервисы на Python, недостаточно знать сам язык. Нужно также понимать протокол HTTP, разбираться в веб-серверах и многом другом. Пройдите трек «Веб-разработка на Django» на Хекслете и найдите еще одно применение вашим навыкам Python-разработки.
Библиотеки Python для Machine Learning
Специалистам по машинному обучению в первую очередь важно обучать различные модели на данных и применять их для классификации, регрессии, кластеризации и решения других задач.
NumPy
NumPy — библиотека, известная не только программистам, работающим с Python. Она позволяет хранить и редактировать данные в n-мерных массивах, что в некоторых случаях намного надежнее обычных списков в Python. В основе NumPy — возможность выполнять очень сложные математические преобразования.
pip install numpy
Pandas
Pandas — это основная библиотека Python для наиболее трудоемких задач в машинном обучении: подготовки и первичного анализа данных. С помощью Pandas удобно фильтровать, объединять и группировать данные, а также строить модели интерпретации любого уровня сложности.
pip install pandas
TensorFlow
TensorFlow — это библиотека популярная у разработчиков нейронных сетей. Она использует тензоры — многомерные массивы, которые дают возможность работать с несколькими сетями одновременно. Также TensorFlow часто используется для распознавания изображений и рукописного текста.
pip install tensorflow
LightGBM
LightGBM — библиотека, созданная сотрудниками Microsoft для работы в сфере машинного обучения. Ее ключевая особенность — быстрая реализация градиентного бустинга. Это такой принцип машинного обучения, который помогает разработчикам создавать новые алгоритмы, используя многоуровневые решения.
pip install lightgbm
Читайте также: Как программировать на Python в Windows. Разбираем WSL
Библиотеки Python для форматирования и очистки данных
Среди аналитиков и научных работников на Python востребованы библиотеки для форматирования и очистки данных. Они помогают приводить данные к нужному виду, удалять пропуски и выбросы, объединять разные источники данных и так далее. Без таких библиотек работа с данными была бы гораздо сложнее и дольше.
Цифровых данных с каждым днем становится больше, и для упрощения их обработки нужны специальные инструменты. В Python есть множество библиотек, которые помогают приводить данные к нужному виду: удалять пропуски и выбросы, объединять разные источники данных.
Dora
Dora — это библиотека для очистки и разведочного анализа данных, которая значительно упрощает решение задач Data Science. С ее помощью можно преобразовывать категориальные данные в порядковые, менять и удалять столбцы, выделять, извлекать и визуализировать признаки и решать много других задач.
pip install dora
Datacleaner
Datacleaner нужна для автоматической очистки и подготовки данных к анализу. Она позволяет удалять строки без указанного значения, кодировать нечисловые переменные, работать с фреймами Pandas и решать множество других задач. Datacleaner проста в использовании, так что подойдет и начинающим пользователям.
pip install datacleaner
Tabulate
Tabulate используется для создания таблиц с удобным дизайном. В ней есть множество функций форматирования для удобного вывода словарей, списков, двумерных массивов библиотек NumPy и Pandas . Кроме консоли Tabulate поддерживает выгрузку данных и в различных веб-форматах — от HTML до Markdown Extra.
pip install tabulate
Scrubadub
Scrubadub – это библиотека, особенно полезная для работы с конфиденциальными данными. Она предлагает множество гибких инструментов для удаления из массива данных имен, телефонов, URL-адресов, ID и других важных данных.
pip install scrubadub
Библиотеки Python для визуализации данных
Библиотеки для визуализации данных позволяют создавать разнообразные графики, диаграммы, дашборды и другие изображения, которые помогают представить данные. С помощью таких библиотек можно сделать данные более привлекательными и понятными для аудитории.
Matplotlib
Matplotlib – одна из главных библиотек для визуализации данных на Python. Многие другие библиотеки, например, Cartopy или Seaborn используют для работы с графиками элементы именно этой библиотеки. У Matplotlib есть понятный объектно-ориентированный интерфейс и удобный API для встраивания в другие приложения.
pip install matplotlib
Altair
Altair — это библиотека Python для статистической визуализации. Она носит «декларативный» характер: разработчикам не нужно писать объемный код для визуализации, а достаточно указать на связь с данными. Altair не поддерживает 3D, но особенно полезен для создания составных и комплексных 2D-графиков.
pip install altair
Bokeh
Bokeh – библиотека визуализации данных, оптимизированная под браузеры. Она поддерживает работу с веб-приложениями и JSON-объектами, а также оптимизирована под работу с данными в реальном времени. Особенно часто Bokeh применяют для создания интерактивных визуализаций.
pip install bokeh
Leather
Leather — это совсем новая библиотека визуализации данных для Python. Она наиболее полезна, когда задачу нужно решить как можно быстрее. В отличие от ряда подобных библиотек, Lether способна взаимодействовать с широким разнообразием данных и выводить их через векторную графику.
pip install leather
Библиотеки Python для создания Telegram-ботов
Telegram-боты — то, что сделало Python особенно популярным на постсоветском пространстве. Боты используют для разных задач — от записи на публичные лекции до оказания помощи или написания текстовых RPG.
Aiogram
Aiogram – это удобная и полностью асинхронная библиотека для создания ботов. Написанные с ее помощью боты отличаются высокой скоростью работы и способностью оперативно справляться с большим трафиком.
pip install aiogram
Python-telegram-bot
Python-telegram-bot – одна из самых старых библиотек для создания ботов c синхронным режимом работы. Кроме реализации чистого API эта библиотека содержит ряд высокоуровневых классов, упрощающих разработку ботов.
pip install python-telegram-bot
Telebot
Telebot – библиотека, которая в большей степени подойдет начинающим разработчикам. Она проста в использовании, требует меньших объемов кода и способна работать как синхронно, так и асинхронно.
pip install telebot
Итог
Мы рассмотрели 19 библиотек для Python, применяющихся в наиболее популярных областях программирования. Какую выбрать – зависит от ваших задач. Если вы опытный разработчик и не нашли в списке библиотеку, о которой точно должен знать каждый — расскажите о ней в комментариях.
Станьте профессиональным Python-разработчиком с нуля за 10 месяцев На Хекслете есть профессия «Python-разработчик». Пройдите ее, чтобы изучить самый популярный язык программирования, освоить его фреймворки и создать большое портфолио с проектами на GitHub.
Библиотеки
Для этого есть два ключевых слова — from и import. import нужен чтобы просто импортировать библиотеку, а from нужен чтобы импортировать что-то конкретное.
import math # Импортирование библиотеки math from random import randint # Импортирование из библиотеки random модуль randint
Чтобы пользоваться, надо написать слово(), или же слово1.слово2()
Как создать библиотеку? [ ]
Здесь написано лишь про то как создать библиотеку. Если вы хотите узнать больше о классах и о самом ООП, то перейдите в статью о классах.
Для этого надо создать файл и написать там один или более классов. Можно также вставить лишь одну функцию, а можно просто переменную сделать там. Пример кода
# Предположим, что файл называется zoo.py # Переменные в классах называются полями. Функции в классах - модули. class Animals: dog = None snake = None elephant = None lion = None # self в модулях обязателен! def __init__(self, dog, snake, elephant, lion): # Благодаря __init__ можно просто написать Animals(значения) self.status(dog, snake, elephant, lion) self.get_data() def status(self, dog, snake, elephant, lion): # Ввод данных в поля self.dog = dog self.snake = snake self.elephant = elephant self.lion = lion def get_data(self): # Отправка сообщения. Необязательно, но можно print('Статус животных в зоопарке:', 'Собака - ' + str(self.dog), 'Змея - ' + str(self.snake), 'Слон - ' + str(self.elephant), 'Лев - ' + str(self.lion), sep='\n') # Дальше только для второго примера идёт some_variable_Animals = 'Некоторая переменная в Animals' def summa(a,b,c): return print(a + b + c) some_variable = 'Это текст в переменной some_variable. Она находится в файле mymodule.py. Вообще, переменным здесь не совсем место, но они могут быть здесь :/'
# Переходим к другому файлу (название неважно) from zoo import * # import * означает что импортируется всё из файла zoo. Без этого надо было бы писать ". import Animals", ". import summa" и т.д. Animals('Есть',True,'1','Нет') # print(some_variable_Animals) - При попытке вывести это выйдет ошибка summa(1, 5, 7) print(some_variable) # Если вы всё правильно написали, то выведится это: # Статус животных в зоопарке: # Собака - Есть # Змея - True # Слон - 1 # Лев - Нет # 13 # Это текст в переменной some_variable. Она находится в файле mymodule.py. Вообще, переменным здесь не совсем место, но они могут быть здесь :/
Установка библиотек из pip [ ]
Для установки библиотеки нужно написать в консоль такую команду:
pip install модуля>
Для вывода всех установленных библиотек
Подборка полезных библиотек для Python с примерами #1
У Python одно из самых больших комьюнити. Этот язык любят за его простоту, лояльность и за его универсальность, которая была достигнута созданием огромного числа библиотек и фреймворков, таких как numpy, django, flask, pygame, tornado, tensorflow и других. На сайте pypi содержится более 320 тысяч проектов от малоизвестных и заброшенных до огромных, которыми пользуются миллионы людей в различных сферах.
Однако даже в таком большом числе библиотек иногда бывает трудно найти нужную. Поэтому хотелось бы поделиться некоторыми полезными библиотеками и привести примеры работы с ними.
Библиотеки, рассмотренные в статье:
mutagen
Данная библиотека позволяет извлекать всю основную информацию об аудиофайле, например, длину, битрейт, исполнителя и другие дополнительные теги. Для того, чтобы установить mutagen достаточно выполнить pip install mutagen . Mutagen поддерживает формат метаданных ID3v2, работая с форматом фреймом, определенном версией ID3v2.4 (включая информацию о RVA2 и POPM, см. теги ID3v2 подробнее тут), и формат APEv2 Также данная библиотека имеет простой и понятный API и удобную структуру хранения тегов. Вот несколько пример:
Получение информации об аудио
import mutagen # загружаем сам файл mfile = mutagen.File("E:/Reamon-Super Girl.mp3") # выводим общую информацию print(mfile.info.pprint()) >>> MPEG 1 layer 3, 160000 bps (CBR?), 44100 Hz, 2 chn, 243.83 seconds print("Длина аудио (сек):", mfile.info.length) print("Частота дискретизации:", mfile.info.sample_rate) print("Битрейт:", mfile.info.bitrate) print("Каналов:", mfile.info.channels) >>> Длина аудио (сек): 243.83335 >>> Частота дискретизации: 44100 >>> Битрейт: 160000 >>> Каналов: 2
Работа с тегами
from mutagen.id3 import ID3 audio = ID3("E:/Reamon-Super Girl.mp3") print("Название:", audio.get("TIT2")) print("Тип носителя:", audio.get("TMED")) print("Исполнитель:", audio.get("TPE1")) >>> Название: Super Girl >>> Тип носителя: DIG >>> Исполнитель: Reamon # общая информация print(audio.pprint()) >>> TIT2=Super Girl TMED=DIG TPE1=Reamon # удаляем все теги audio.delete() audio.save() print(audio.pprint() == "") >>> True
В отличие от многих других библиотек mutagen позволяет вызовом всего одной функции получить всю необходимую информацию об аудио в удобно читаемом формате.
in_place
Бывают моменты, когда необходимо считать данные с файла, изменить их и перезаписать в тот же файл. В такие моменты приходится либо хранить данные в буфере в оперативной памяти, либо создавать новый файл и работать сразу с 2мя файлами. Модуль in_place берет на себя работу с временными файлами, благодаря чему новый файл будет носить такое же название. Для начала работы достаточно установить модуль: pip install in_place
Допустим, необходимо в файле с данными удалить все цифры, которые там встречаются, тогда можно выполнить следующий код, который заменит старый файл:
import in_place with in_place.InPlace('tmp.txt', encoding="utf-8") as fp: for line in fp: words = [] for word in line.split(): for char in "1234567890": word = word.replace(char, "") words.append(word) fp.write(" ".join(words) + "\n")


При таком подходе исходный файл удалится, но если в примере выше заменить строку with in_place.InPlace(‘tmp.txt’, encoding=»utf-8″) as fp: на with in_place.InPlace(‘tmp.txt’, encoding=»utf-8″, backup=”tmp_old.txt”) as fp: , то исходный файл сохранится с названием tmp_old.txt
with in_place.InPlace('tmp.txt', encoding="utf-8", backup="tmp_old.txt") as fp: for line in fp: words = [] for word in line.split(): for char in "1234567890": word = word.replace(char, "") words.append(word) fp.write(" ".join(words) + "\n")

Также класс InPlace может принимать еще несколько модификаторов:
- mode= <'b'|'t'|None>— тип файла, ‘b’ — бинарный, ‘t’/None — текстовый
- backup= — путь к оригиналу файла
- backup_ext= — создаст бэкап с именем файла + backup_ext
- move_first= — меняет поведение при создании временных файлов
pyarmor
Так как Python код переводится в более простой bytecode, который нужен для ускорения работы интерпретатора, Python код очень сложно защитить от взлома. Даже если конвертировать программу в исполняемый .exe файл, достать информацию из полученного .exe не составит труда. Для того, чтобы усилить защиту кода, используют так называемые методы обфускации кода, то есть методы запутывания исходного кода.
Существует хорошая и удобная библиотека pyarmor, которая позволит в пару кликов провести обфускацию кода. Данная библиотека может работать как из консоли, так и через собственный графический интерфейс. Для её использования достаточно выполнить: pip install pyarmor — для работы из консоли и pip install pyarmot-webui для установки графического интерфейса.
Создадим в некоторой папке “pyarm” два файла с кодом, первый файл назовём “one_module.py” с кодом:
class FileClass: def __init__(self, filename): self.filename = filename def clearFileName(self): newFName = "" for char in self.filename: if not char in "1234567890": newFName += char self.filename = newFName def saveToFile(self, posx, posy): with open(self.filename, "a", encoding="utf-8") as fp: fp.write(f" \n")
from one_module import FileClass class MyClass: def __init__(self, x, y): self.x = x self.y = y self.fClass = FileClass("test.txt") def getNextValues(self, i): self.x = self.x*(self.y**i) self.y = self.y*(self.x**i) - self.x/i return self.x, self.y def saveNewValues(self, i): x,y = self.getNextValues(i) self.fClass.saveToFile(x,y) if __name__ == "__main__": myClass = MyClass(2, 6.6) myClass.saveNewValues(5)
Далее в консоли запустим pyarmor, выполнив команду pyarmor-webui , после чего в браузере откроется главное меню:

Далее зайдем в раздел “Obfuscate Script Wizard”, в нем пропишем путь к директории с файлами и основной файл:

Далее нажмем “next” и пропишем дополнительный настройки, что необходимо рекурсивно в папке обфусцировать все файлы:

И нажмем “obfuscate”. В папке “pyarm” появится папка “dist”, в которой будут лежать обфусцированые файлы. Посмотрим, что в них:

Можно запустить main.py и убедиться, что все работает, как надо. Алгоритм отработал так же, как и до изменения кода:

Pyarmor отлично справился с задачей сокрытия кода. Это не самый функциональный обфускатор, но его можно применять для базовой защиты некоторых кусков кода.
pyspellcheker
Если у вас есть приложение, которое обрабатывает текстовые данные, например, принимает запросы от пользователя в виде текста (набора слов) и отбирает данные по этому тексту или есть приложение, которое статистически обрабатывает слова в тексте, то всегда может возникнуть проблема неправильного написания слов. В таком случае может помочь библиотека pyspellcheker. Установить её довольно просто, достаточно выполнить pip install pyspellchecker . Данный модуль помогает исправлять орфографические ошибки в словах. Ниже приведен код работы библиотеки с описанием:
Пример использования библиотеки
from spellchecker import SpellChecker spell = SpellChecker(language='ru') # так же можно установить количество ошибок в слове, # которое необходимо исправить spell.distance = 1 words = ['локоть', 'человек', 'лакать', 'кнуть'] # проверить, каких слов нет в словаре unkn_words = spell.unknown(words) print("НЕИЗВЕСТНЫЕ СЛОВА:", unkn_words) # проверить, какие слова есть в словаре good_words = spell.known(words) print("ИЗВЕСТНЫЕ СЛОВА:", good_words) >>> НЕИЗВЕСТНЫЕ СЛОВА: >>> ИЗВЕСТНЫЕ СЛОВА: print("-"*20) for word in words: print("СЛОВО:", word) # исправить ошибку в слове на наиболее лучший результат print("ИСПРАВЛЕНО НА:", spell.correction(word)) # получить наиболее приоритетные варианты исправления слова print("ВАРИАНТЫ:", spell.candidates(word)) print("-"*20) >>> -------------------- >>> СЛОВО: локоть >>> ИСПРАВЛЕНО НА: локоть >>> ВАРИАНТЫ: >>> -------------------- >>> СЛОВО: человек >>> ИСПРАВЛЕНО НА: человек >>> ВАРИАНТЫ: >>> -------------------- >>> СЛОВО: лакать >>> ИСПРАВЛЕНО НА: плакать >>> ВАРИАНТЫ: >>> -------------------- >>> СЛОВО: кнуть >>> ИСПРАВЛЕНО НА: кнут >>> ВАРИАНТЫ: >>> -------------------- # если слова не было в словаре, можно добавить его вручную print("НЕИЗВЕСТНЫЕ СЛОВА:", spell.unknown(["лакать", "интерпретатор"])) spell.word_frequency.load_words(["лакать", "интерпретатор"]) print("НЕИЗВЕСТНЫЕ СЛОВА:", spell.unknown(["лакать", "интерпретатор"])) >>> НЕИЗВЕСТНЫЕ СЛОВА: >>> НЕИЗВЕСТНЫЕ СЛОВА: set() >>> -------------------- # так же слова можно загружать просто из текста print("-"*20) print("НЕИЗВЕСТНЫЕ СЛОВА:", spell.unknown(["эйлер", "Базеля"])) spell.word_frequency.load_text("Эйлер (путь которого из Базеля лежал через Любек, Ревель и Кронштадт) прибыл в Санкт-Петербург 24 мая 1727 года") print("НЕИЗВЕСТНЫЕ СЛОВА:", spell.unknown(["эйлер", "Базеля"])) >>> НЕИЗВЕСТНЫЕ СЛОВА: >>> НЕИЗВЕСТНЫЕ СЛОВА: set() # и из файла можно загрузить текст spell.word_frequency.load_text_file("C:/sometext.txt")
Сразу стоит провести испытания по скорости исправления опечаток для 5000 слов:
import time import random as rnd def createBadWords(spell): words = [] for i, word in enumerate(spell.word_frequency.words()): if i < 100: continue if i >= 5100: break index = rnd.randint(0, len(word)) char = rnd.choice("абвгдеёжзийклмнопрстуфхцчшщъыьэяю") word = word[:index] + char + word[index+1:] words.append(word) return words # протестируем за сколько времени исправятся 5000 слов words = createBadWords(spell) st = time.time() newWords = [spell.correction(word) for word in words] et = time.time() - st print(f"ВРЕМЯ НА СЛОВ: ") >>> ВРЕМЯ НА 5000 СЛОВ: 2.9863336086273193
Библиотека показала хорошие результаты, в среднем на одно слово будет тратиться 0.0006 секунд. Это означает, что данный модуль можно использовать в проектах и при это не бояться за замедление работы программы.
mimesis
Часто для проверки работы алгоритмов нужно собрать достаточно данных, чтобы на них тестировать. Создание данных вручную занимает очень много времени, для избавления от этой рутины может помочь модуль mimesis, который умеет генерировать рандомные данные по нескольким критериям. Устанавливается он просто выполнив: pip install mimesis . При помощи данного модуля можно генерировать различные данные на различных языках, например:
import mimesis from mimesis import Address adrRU = Address(mimesis.locales.RU) print("Адрес:", adrRU.address()) print("Город:", adrRU.city()) print("Координаты:", adrRU.coordinates()) print("Улица:", adrRU.street_name()) >>> Адрес: ул. Лихоборская 73 >>> Город: Волгореченск >>> Координаты: >>> Улица: Украинская adrRU = Address(mimesis.locales.EN) print("Адрес:", adrRU.address()) print("Город:", adrRU.city()) print("Координаты:", adrRU.coordinates()) print("Улица:", adrRU.street_name()) >>> Адрес: 858 Navajo Gate >>> Город: Philadelphia >>> Координаты: >>> Улица: Eutaw
Данные, связанные со временем/датой
Большое преимущество этого модуля состоит в том, что данные возвращаются в формате datetime объекта.
import mimesis from mimesis import Datetime dt = Datetime(mimesis.locales.RU) print("Случайная полная дата:", dt.datetime(1998, 2045), type(dt.datetime(1998, 2045))) print("Случайная дата:", dt.date(1998, 2045), type(dt.date(1998, 2045))) print("Дата форматированная:", dt.formatted_datetime("%m_%d_%y %H:%M:%S")) print("День недели:", dt.day_of_week(), dt.day_of_week(abbr=True)) print("Периодичность:", dt.periodicity()) print("Век:", dt.century()) >>> Случайная полная дата: 2029-01-21 01:59:42.671179 >>> Случайная дата: 2019-06-11 >>> Дата форматированная: 04_10_06 10:11:03 >>> День недели: Вторник Вт. >>> Периодичность: Ежедневно >>> Век: XXI
Данные о человеке
import mimesis from mimesis import Person pers = Person(mimesis.locales.RU) print("Научная степень:", pers.academic_degree()) print("Полное имя мужское:", pers.full_name(mimesis.enums.Gender.MALE)) print("Полное имя женское:", pers.full_name(mimesis.enums.Gender.FEMALE)) print("Национальность:", pers.nationality()) print("Работа:", pers.occupation()) print("Университет:", pers.university()) print("Телефон:", pers.telephone()) >>> Научная степень: Специалист >>> Полное имя мужское: Намиг Варахобов >>> Полное имя женское: Солина Гафилова >>> Национальность: Англичанка >>> Работа: Бармен >>> Университет: Государственная морская академия имени адмирала С.О. Макарова >>> Телефон: +7-(913)-024-20-76
И это лишь малая часть тех данных, которые позволяет генерировать модуль. Как итог можно сказать, что модуль позволяет легко генерировать новые данные, которые в пару вызовов функций можно добавить к себе в приложение.
Заключение
Сообщество ежедневно улучшает уже имеющиеся библиотеки и создает абсолютно новые, поэтому в таком большом разнообразии каждый может найти для себя что-то полезное и упрощающее разработку.
P.S. тестирование библиотек проводилось на Python 3.9 в стандартной IDLE на win 10.