как установить pipenv на windows
Pipenv & Virtual Environments¶
This tutorial walks you through installing and using Python packages.
It will show you how to install and use the necessary tools and make strong recommendations on best practices. Keep in mind that Python is used for a great many different purposes, and precisely how you want to manage your dependencies may change based on how you decide to publish your software. The guidance presented here is most directly applicable to the development and deployment of network services (including web applications), but is also very well suited to managing development and testing environments for any kind of project.
This guide is written for Python 3, however, these instructions should work fine on Python 2.7—if you are still using it, for some reason.
☤ Make sure you’ve got Python & pip¶
Before you go any further, make sure you have Python and that it’s available from your command line. You can check this by simply running:
If you’re newcomer and you get an error like this:
It’s because this command is intended to be run in a shell (also called a terminal or console). See the Python for Beginners getting started tutorial for an introduction to using your operating system’s shell and interacting with Python.
Additionally, you’ll need to make sure you have pip available. You can check this by running:
If you installed Python from source, with an installer from python.org, via Homebrew or via Linuxbrew you should already have pip. If you’re on Linux and installed using your OS package manager, you may have to install pip separately.
If you plan to install Pipenv using Homebrew or Linuxbrew you can skip this step. The Homebrew/Linuxbrew installer takes care of pip for you.
☤ Installing Pipenv¶
Pipenv is a dependency manager for Python projects. If you’re familiar with Node.js’s npm or Ruby’s bundler, it is similar in spirit to those tools. While pip can install Python packages, Pipenv is recommended as it’s a higher-level tool that simplifies dependency management for common use cases.
☤ Isolated Installation of Pipenv with Pipx¶
Pipx is a tool to help you install and run end-user applications written in Python. It installs applications into an isolated and clean environment on their own. To install pipx, just run:
Once you have pipx ready on your system, continue to install Pipenv:
☤ Pragmatic Installation of Pipenv¶
If you have a working installation of pip, and maintain certain “tool-chain” type Python modules as global utilities in your user environment, pip user installs allow for installation into your home directory. Note that due to interaction between dependencies, you should limit tools installed in this way to basic building blocks for a Python workflow like virtualenv, pipenv, tox, and similar software.
expanded to the absolute path to your home directory) so you’ll need to add
To upgrade pipenv at any time:
☤ Crude Installation of Pipenv¶
If you don’t even have pip installed, you can use this crude installation method, which will bootstrap your whole system:
☤ Homebrew Installation of Pipenv(Discouraged)¶
Homebrew is a popular open-source package management system for macOS. For Linux users, Linuxbrew is a Linux port of that.
Installing pipenv via Homebrew or Linuxbrew will keep pipenv and all of its dependencies in an isolated virtual environment so it doesn’t interfere with the rest of your Python installation.
Once you have installed Homebrew or Linuxbrew simply run:
To upgrade pipenv at any time:
Homebrew installation is discouraged because each time the Homebrew Python is upgraded, which Pipenv depends on, users have to re-install Pipenv, and perhaps all virtual environments managed by it.
☤ Installing packages for your project¶
Pipenv manages dependencies on a per-project basis. To install packages, change into your project’s directory (or just an empty directory for this tutorial) and run:
Pipenv will install the excellent Requests library and create a Pipfile for you in your project’s directory. The Pipfile is used to track which dependencies your project needs in case you need to re-install them, such as when you share your project with others. You should get output similar to this (although the exact paths shown will vary):
☤ Using installed packages¶
Now that Requests is installed you can create a simple main.py file to use it:
Then you can run this script using pipenv run :
You should get output similar to this:
☤ Virtualenv mapping caveat¶
☤ Next steps¶
Congratulations, you now know how to install and use Python packages! ✨ 🍰 ✨
Pipenv is a production-ready tool that aims to bring the best of all packaging worlds to the Python world. It harnesses Pipfile, pip, and virtualenv into one single command.
It features very pretty terminal colors.
Stay Informed
Receive updates on new releases and upcoming projects.
Установка и настройка Django 3 через pipenv (Создание сайтов) — Урок №1
В данной статье будет описан процесс правильной настройки сервера для работы с Django проектами. Начнем с обзора командной строки и способов установки последних версий Django (3.0) и Python 3.8. Затем перейдем к разбору виртуальных окружений, git и особенностям работы в текстовом редакторе. В результате вы будете готовы к созданию и модификации новых проектов Django за пару нажатий клавиш.
Содержание статьи
Настройка Django через командную строку
Командная строка является мощным инструментом, который позволяет выполнять все операции через текст. Разработчики используют ее повсеместно.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
В дальнейшем будет показано как установить и настроить Django через командную строку.
В Windows есть две встроенные командные оболочки: Command shell и PowerShell. Рекомендуем использовать PowerShell, которая несколько мощнее.
Если в примере требуется обратиться к «командной строке», значит вы должны открыть новую консоль, используя Terminal или PowerShell.
Существует множество команд и их вариаций, однако на практике при разработке в Django чаще всего используются следующие шесть:
Заметьте, что наше текущее местоположение, то есть
Некоторые разработчики обходятся без мышки, используя только командную строку. С практикой такой подход значительно ускоряет скорость работы.
Виртуальное окружение Python pipenv
Виртуальные окружения является незаменимыми аспектами программирования на Python. Это изолированные контейнеры, которые состоят из необходимых для рассматриваемого проекта программных инструментов. Они крайне важны, так как по умолчанию Python и Django устанавливаются в одну и ту же директорию. По этой причине могут возникнуть проблемы, когда пользователь хочет работать сразу с несколькими проектами на одном компьютере. Что, если ProjectA использует Django 3.0, а прошлогодний ProjectB все еще на Django 1.11?
Виртуальные окружения решают проблемы, которые возникают при параллельной работе над несколькими задачами.
Существует огромное количество отраслей программирования, где не утихают дискуссии касательно применения тех или иных инструментов. Однако, в отношении виртуальных окружений Python спорить нет нужды. Вы должны использовать отдельное виртуальное окружение для каждого нового проекта Python.
Себастиан МакКензи, создатель Yarn, в котором был введен концепт пакетирования JavaScript, сделал небольшой пост о детерминирования и его важности. C Pipenv мы будем создавать новое виртуальное окружение для каждого проекта Django.
Pipenv — современный менеджер зависимостей для Python-проектов
P ipenv — менеджер зависимостей для Python-проектов. С его помощью можно создавать виртуальные среды и управлять зависимостями приложений. Pipenv решает ряд проблем, которые возникали при использовании pip, virtualenv и requirements.txt.
Чем хорош Pipenv
Рано или поздно, каждый разработчик сталкивается с проблемой контроля версий пакетов pip и настройкой виртуального окружения. С помощью Pipenv вы можете:
Можно забыть про pip и virtualenv
Вам больше не нужно использовать pip и virtualenv по отдельности. В pipenv этот функционал реализован «из коробки».
Requirements.txt больше не нужен
Для своей работы менеджер использует 2 файла: Pipfile (по сути замена requirements.txt) и Pipfile.lock (связывает версии пакетов, тем самым обеспечивая дополнительную безопасность).
Пример файла Pipfile :
[[source]] name = «pypi» url = «https://pypi.org/simple» verify_ssl = true [dev-packages] [packages] questionary = «*» [requires] python_version = «3.7»
Ваше приложение может зависеть от конкретной версии библиотеки, а эта библиотека может зависеть от конкретной версии другой библиотеки. Если производить настройку вручную, во всем этом очень просто запутаться 🤷. Pipenv создан, чтобы облегчить эту задачу. Он отслеживает дерево взаимозависимостей вашего приложения в файле с именем Pipfile.lock В свою очередь, Pipfile.lock также проверяет, используются ли корректные версии зависимостей.
Пример файла Pipfile.lock :
Pipenv удобен, когда над проектом работают несколько разработчиков. Рассмотрим простой пример — компания ведет разработку своего корпоративного сайта. Мария работает над вкладкой «Отчеты», Иван — над вкладкой «Чат».
Если бы Иван и Мария использовали Pipenv, Pipfile был бы автоматически обновлен и включен в коммит Марии. Они бы сэкономили время и завершили свой продукт быстрее. Вот что делает Pipenv таким важным.
Возможность создавать собственные шорткаты
Pipenv позволяет создавать собственные шорткаты (сокращения) в секции [scripts] файла Pipfile :
Теперь в консоли вы можете вызвать шорткат командой pipenv run print_hello
Автоматизация рутинных задач
Больше не придется тратить время на выполнение рутинных задач, выискивая причины отсутствия синхронизации и возникновения ошибок в версиях. Всю рутинную работу pipenv берет на себя:
Установка
Самый простой вариант — установка с помощью pip.
Для Linux и MacOS есть альтернативный способ установки:
brew install pipenv
sudo apt install pipenv
sudo dnf install pipenv
pkg install py36-pipenv
После установки, вы можете фактически забыть о pip — pipenv по сути заменяет pip и virtualenv.
Пример использования
Рассмотрим простой пример использования pipenv.
Создаем виртуальную среду
Для инициализации виртуальной среды Python 3, выполните команду:
Если виртуальной среды еще не существует, она будет создана.
Устанавливаем пакеты
Далее можно установить сторонний пакет. Существует 3 варианта установки:
pipenv install scrapy
Установится последняя версия пакета. При этом в Pipfile добавится запись scrapy = «*»
Установятся все пакеты из Pipfile и обновится Pipfile.lock
Установятся все пакеты из Pipfile.lock
Запускаем скрипты
Запустить python-скрипты можно несколькими способами:
pipenv run python script-name.py
Настройка pipenv в PyCharm
Процесс настройки pipenv в PyCharm:
После того как все шаги выполнены, для текущего проекта устанавливается новая среда pipenv и устанавливаются пакеты, перечисленные в Pipfile.
Если вы открываете какой-либо проект с добавленным файлом Pipfile, но в нем не настроен интерпретатор, PyCharm предложит вам использовать среду Pipenv. Если вы выберете эту опцию, PyCharm автоматически установит для вас pipenv.
Команды pipenv
Pipenv и Docker
В качестве альтернативы можно выполнить экспорт в самой сборке:
—deploy — pipenv выдаст ошибку если Pipfile.lock устарел, вместо того, чтобы сгенерировать новый Pipfile.lock файл.
—system — устанавливать зависимости в родительскую систему.
Рассмотрим пример Dockerfile для развертывания Flask приложения:
Конфигурирование pipenv
Pipenv дает возможность конфигурировать свое поведение с помощью переменных окружения ( Environment Variables ). Просто создайте переменную и pipenv обнаружит её. Вот некоторые их них:
Полный список переменных можно посмотреть в официальной документации pipenv, в разделе » Configuration With Environment Variables «.
Стоит ли использовать Pipenv?
Определенно да! 🎉 Pipenv сведет всю работу по управлению пакетами и виртуальным окружением в одну консоль, решит проблему с версионированием пакетов и добавит новый, весьма приятный функционал.
pipenv — как pip, только удобнее
Изначальный автор проекта — Кеннет Рейц (Kenneth Reitz) — он ещё и автор requests и множества других проектов «for humans», очевидно, вдохновлялся пакетными менеджерами из других экосистем, такими как npm (JavaScript) и bundler (Ruby), так что если вы когда-то пользовались этими инструментами, то можете заметить множество параллелей.
В названии проекта кроются два основных его назначения:
Грубо говоря, pipenv можно рассматривать как симбиоз утилит pip и venv (или virtualenv ), которые работают вместе, пряча многие неудобные детали от конечного пользователя.
Помимо этого pipenv ещё умеет вот такое:
Итак, начнём по порядку.
Установка
Как я писал в посте про виртуальные окружения, не стоит устанавливать пакеты в глобальный интерпретатор, поэтому предпочтительным способом установки является пакетный менеджер вашей ОС.
Например, на MacOS pipenv можно установить через brew :
А на Fedora Linux вот так:
На Ubuntu можно установить pipenv из специального PPA:
Во всех остальных случаях, в частности на Windows, самый простой способ — это установка в домашнюю директорию пользователя (опять же, см. пост про виртуальные окружения):
Теперь проверим установку:
Если вы получили похожий вывод, значит, всё в порядке.
При возникновении проблем с установкой, обратитесь к официальной документации. Если совсем беда, то напишите комментарий под этим постом, попробуем помочь 😊
Файлы pipenv
Оба этих файла можно и нужно сохранять в системе контроля версий (git).
Вообще, идею использовать два файла для описания зависимостей нельзя назвать новой. Здесь явно прослеживается параллель между Gemfile и Gemfile.lock из мира Ruby и package.json и package-lock.json из мира JavaScript. Все эти файлы имеют схожее назначение.
Использование
Инициализация проекта
Создать новый проект, использующий конкретную версию Python можно вот такой командой:
Если же вам не нужно указывать версию так конкретно, то есть шорткаты:
После выполнения одной из этих команд, pipenv создал файл Pipfile и виртуальное окружение где-то в заранее определенной директории (по умолчанию вне директории проекта).
Очень полезно правильно разделять зависимости на «основные» и «разработческие». Это позволит уменьшить размер окружения при развёртывании на продакшн (например, размер Docker-образа). Кроме того, чем меньше в системе, работающей на продакшне, установлено пакетов, тем меньше потенциальных уязвимостей.
Если вам нужно узнать, где именно pipenv создал виртуальное окружение (например, для настройки IDE), то сделать это можно вот так:
Управление зависимостями через pipenv
Теперь давайте установим в проект первую зависимость. Делается это при помощи команды pipenv install :
В секцию [packages] добавилась зависимость requests с версией * (версия не фиксирована).
Теперь можно увидеть всё дерево зависимостей проекта при помощи команды pipenv graph :
Это бывает полезно, чтобы узнать, что от чего зависит, или почему в вашем виртуальном окружении есть определённый пакет.
Управление виртуальными окружениями
Давайте удалим созданное виртуальное окружение:
И представим себя в роли другого разработчика, который только присоединился к вашему проекту. Чтобы создать виртуальное окружение и установить в него зависимости нужно выполнить следующую команду:
Эта команда на основе Pipfile.lock воссоздаст точно то же самое виртуальное окружение, что и у других разработчиков проекта.
Чтобы «войти» внутрь виртуального окружения, нужно выполнить:
В этом режиме будут доступны все установленные пакеты, а имена python и pip будут указывать на соответствующие программы внутри виртуального окружения.
Есть и другой способ запускать что-то внутри виртуального окружения без создания нового шелла:
Переменные окружения
Давайте напишем небольшой скрипт ( script.py ), который будет использовать эту переменную окружения:
Попробуем запустить его без использования pipenv :
Запуск скриптов
Теперь тот же самый скрипт можно запустить при помощи команды:
В качестве бонуса pipenv автоматически подгрузит переменные окружения, так что таким же образом можно выполнять и скрипты, которые зависят от конфигурации проекта (миграции БД, очистки кэшей, удаление временных файлов, да что угодно).
Распространённые проблемы
Лишние зависимости в виртуальном окружении
Пререлизные зависимости
Что произойдёт, если всё-таки рискнуть:
На первый взгляд, всё хорошо. Но давайте заглянем в Pipfile :
Чтобы установить пререлизную зависимость правильно, нужно указать конкретную версию:
Мердж-конфликты в Pipfile.lock
План выхода из такой ситуации следующий: 1. Не пытайтесь осознанно решать конфликты в Pipfile.lock вручную, всё равно не сможете; pipenv сам создал этот файл, вот пусть сам и разбирается. 2. Разрешите конфликт в любую сторону, главное, чтобы в итоге получился валидный JSON. 3. Пересоздайте Pipfile.lock заново:
Статус проекта: пациент скорее мертв, чем жив, но надежда есть
Заключение
Вместо заключения оставлю вас поразмышлять над вот этой программой:
Дополнительное чтение
Подпишитесь!
Чтобы получить уведомление о новом посте можно:
Русские Блоги
5 минут Pipenv руководство по началу работы
Добро пожаловать, чтобы обратить внимание на Tianshan Intelligence, мы являемся вертикальным сообществом, специализирующимся на бизнес-аналитике, искусственном интеллекте, анализе больших объемов данных и майнинге, обучении, вопросах и ответах, поиске работы в одном месте!
Студенты, которые интересуются бизнес-аналитикой BI, анализом больших данных и майнингом, машинным обучением, python, R и другими областями данных, а также WeChat: tstoutiao, приглашают вас войти в группу обмена энтузиастами данных, энтузиасты данных здесь.
Автор: Лю Чжицзюнь, 6 лет + опыт работы с Python, старший инженер-разработчик, в настоящее время занимается медицинской промышленностью в работе над архитектурой веб-системы в Интернете
Личный общедоступный номер: Zen of Python (ID WeChat: vttalk)
Картинка: Фото Нины Э. на Unsplash
Потратьте 5 минут, чтобы освоить использование этого инструмента.
Установка pipenv ничем не отличается от установки обычных сторонних библиотек, вы можете установить ее непосредственно с помощью команды pip.
pip install pipenv`
Его можно установить на Mac с помощью команды brew.
brew install pipenv
Далее мы расскажем, как использовать Pipenv. После того, как мы запустили новый проект, первое, что нам нужно сделать, это создать виртуальную среду для него (убедитесь, что на вашем компьютере установлена только одна версия Python, иначе всегда будут непредсказуемые проблемы)
Создать виртуальную среду
# Введите каталог, в котором находится проект, cd your_projectpipenv install
Установить сторонние пакеты
В предыдущем инсталляционном пакете использовалась команда pip, теперь вы можете использовать команду pipenv для установки, например, я устанавливаю пакет запросов:
pipenv install requests
Каковы преимущества использования pipenv для установки сторонних пакетов? Вам не нужно активировать виртуальную среду перед установкой, она напрямую загружается в виртуальную среду. Если для установки вы используете pip, вы должны сначала активировать среду. (Я часто забываю, какое имя я дал виртуальной среде)
После установки пакета файл Pipfile будет обновлен, а файл Pipfile.lock будет добавлен.
Структура в файле Pipfile:
[[source]]
name = «pypi»
url = «https://pypi.org/simple»
verify_ssl = true
В файле Pipfile записаны три вещи:
Откуда пакет загрузился с
Какие пакеты нужно скачать, * Означает, что последняя версия всегда загружается, а dev-packages означает пакеты, предназначенные для этапа разработки
Что такое версия Python
В файле Pipfile.lock подробно описывается информация об этих пакетах, включая значение хеш-значения этого пакета и то, от каких других пакетов зависит пакет.
Преимущество записи этой информации в файл Pipfile заключается в том, что при развертывании проекта в формальной среде нам больше не нужно устанавливать его один за другим: прямое выполнение установки pipenv автоматически создаст виртуальную среду и установит все пакеты в Pipfile. это хорошо.
Активировать виртуальную среду
Перед запуском программы нам все же нужно активировать виртуальную среду.Можно использовать оболочку pipenv для активации без указания имени, пока вы выполняете команду в текущем проекте.
Launching subshell in virtual environment…
Microsoft Windows [Version 10.0.18290.1000]
(c) 2018 Microsoft Corporation. All rights reserved.
Ты заметил? Перед каталогом есть пара строк в скобках, которая является названием виртуальной среды, которую мы только что создали. После активации виртуальной среды вы можете запустить программу.
(weihub-flask-j3rUnHkH) D:\my\weihub-flask> python
>>> import requests
>>> requests.get(«http://baidu.com»).text
‘ \n \n \n’
>>>
Выход из виртуальной среды exit Команда, в это время пара скобок исчезла.
pipenv run
Кроме того, pipenv также подготовил run Команды, которые можно использовать для выполнения команд в виртуальной среде без отображения активации виртуальной среды, например:
Выше приведены базовые знания о Pipenv, которые вам необходимо освоить, если вы заинтересованы, вы также можете понять следующее содержание
Импортировать из needs.txt
Если это старый проект, вы помещаете все зависимые пакеты в файл require.txt, pipenv очень интимен, он поддерживает установку из файла needs.txt, что удобно для пользователей, которые используют pip для плавной миграции.
Устанавливать только в среду разработки
В среде разработки нам необходимо установить такие пакеты, как django-debug-toolbar и pytest. Они не используются в производственной среде, поэтому устанавливать их не нужно. Затем мы можем добавить параметр после isntall при установке пакета —Dev, что означает, что он устанавливается только в среде разработки, например:
Выполнить в производственной среде:
# Производственная среда
pipenv install
Реализация среды разработки:
Удалить пакет
pipenv uninstall requests
Удалить виртуальную среду
После удаления виртуальной среды каталог виртуальной среды и все зависимые от него пакеты будут удалены, но файлы Pipfile и Pipfile.lock останутся.
Общая проблема:
Если вам не удается создать виртуальную среду с помощью pipenv, появляется ошибка, подобная этой:
pipenv installCreating a virtualenv for this project…Pipfile: D:\my\weihub-flask\PipfileUsing c:\users\lzjun\appdata\local\programs\python\python37-32\python.exe (3.7.1) to create virtualenv…[ ===] Creating virtual environment. Already using interpreter c:\users\lzjun\appdata\local\programs\python\python37-32\python.exeUsing base prefix ‘c:\\users\\lzjun\\appdata\\local\\programs\\python\\python37-32’New python executable in C:\Users\lzjun\.virtualenvs\weihub-flask-j3rUnHkH\Scripts\python.exeERROR: The executable C:\Users\lzjun\.virtualenvs\weihub-flask-j3rUnHkH\Scripts\python.exe is not functioningERROR: It thinks sys.prefix is ‘d:\\my\\weihub-flask’ (should be ‘c:\\users\\lzjun\\.virtualenvs\\weihub-flask-j3runhkh’)ERROR: virtualenv is not compatible with this system or executableNote: some Windows users have reported this error when they installed Python for «Only this user» or have multiple versions of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.Failed creating virtual environment[pipenv.exceptions.VirtualenvCreationException]: File «c:\users\lzjun\appdata\local\programs\python\python37-32\lib\site-packages\pipenv\cli\command.py», line 254, in install[pipenv.exceptions.VirtualenvCreationException]: editable_packages=state.installstate.editables,[pipenv.exceptions.VirtualenvCreationException]: File «c:\users\lzjun\appdata\local\programs\python\python37-32\lib\site-packages\pipenv\core.py», line 1741, in do_install[pipenv.exceptions.VirtualenvCreationException]: pypi_mirror=pypi_mirror,[pipenv.exceptions.VirtualenvCreationException]: File «c:\users\lzjun\appdata\local\programs\python\python37-32\lib\site-packages\pipenv\core.py», line 574, in ensure_project[pipenv.exceptions.VirtualenvCreationException]: pypi_mirror=pypi_mirror,[pipenv.exceptions.VirtualenvCreationException]: File «c:\users\lzjun\appdata\local\programs\python\python37-32\lib\site-packages\pipenv\core.py», line 506, in ensure_virtualenv[pipenv.exceptions.VirtualenvCreationException]: python=python, site_packages=site_packages, pypi_mirror=pypi_mirror[pipenv.exceptions.VirtualenvCreationException]: File «c:\users\lzjun\appdata\local\programs\python\python37-32\lib\site-packages\pipenv\core.py», line 935, in do_create_virtualenv[pipenv.exceptions.VirtualenvCreationException]: extra=[crayons.blue(«<0>«.format(c.err)),][pipenv.exceptions.VirtualenvCreationException]: Fatal Python error: initfsencoding: unable to load the file system codecTraceback (most recent call last): File «C:\Users\lzjun\.virtualenvs\weihub-flask-j3rUnHkH\lib\encodings\__init__.py», line 31, in File «C:\Users\lzjun\.virtualenvs\weihub-flask-j3rUnHkH\lib\codecs.py», line 481 except UnicodeDecodeError, exc: ^SyntaxError: invalid syntax
Как увеличить скорость загрузки
Измените URL-адрес в файле Pipfile и укажите источник загрузки в качестве более быстрого внутреннего источника, такого как Alibaba Cloud или Douban.
[[source]] name = «pypi» url = «https://mirrors.aliyun.com/pypi/simple»# или использовать исходный URL Douban =» http://pypi.douban.com/simple»verify_ssl = true
Каковы недостатки Pipenv
Медленно, иногда это кажется особенно медленным, просто застряли в процессе блокировки, вы пропускаете ссылку блокировки во время установки, используйте команду
Для получения дополнительной инструкции по эксплуатации, пожалуйста, обратитесь к официальной документации:
https://pipenv.readthedocs.io/en/latest/basics/
Автор рекомендует другие хорошие статьи:
Код написан более элегантно (версия Python)
Код написан более элегантно (версия Python)
Коллекция статей по истории сообщества энтузиастов Python:
Список исторических статей для сообщества энтузиастов Python
Ответить в публичном аккаунте после следующего«Курс»Ты можешь получить:
Переход Xiaobian на науку о данных (анализ данных и майнинг / машинное обучение) [последнее бесплатно]
Бесплатный видеокурс для начинающих по Python!
Быстрый старт библиотеки визуализации matplotlib в Python!
Отчет по анализу данных Учителя Чена был расширен для выпуска бесплатных обучающих видео.
Интеллектуальная рекомендация
AlamoFire Source Severtation Series (12) ось времени (временная шкала)
Эта статья приносит некоторые идеи о временной шкале в AlamoFire Преступность Перевод Timeline означает, что временная шкала может представлять событие с начала до конца узла времени. Концепция времен.