Рубрики
Без рубрики

Тощий на ореховой среде Python Dev и упаковки (PIP)

Советы о настройке среды DEV Python и распределить на PIP. Теги с Python, начинающими, Quicktip, ресурсами.

Добро пожаловать в дикий мир Python Dev. Где ничего не соответствует, и такого понятия нет как консенсус.

Не волнуйтесь, я буду вашим гидом.

Фон

Я тихо выпустил Pyquilted который генерирует приятные взгляды с YAML в PDF. Я многому узнал о настройке среды Python Dev и упаковывая приложение для распространения на Pypi (PIP), и теперь я делюсь этим знанием.

Вы можете узнать больше о стеганых резюме здесь Отказ

Неисполнительно

Запуск тестовых случаев были по какой-то причине сложнее, чем должно быть. Следуйте этим шагам, чтобы облегчить свою жизнь.

Создайте каталог, называемый «Test» в вашем корневом проекте.

Назовите все свои тесты «Test_ *».

Поместите __init__.py, чтобы каталог получил признание в качестве пакета.

Запуск всех испытаний на Python 2 и 3 Python -M Unittest. обнаружить

Запуск одного теста Python -M Unittest Test.test_name

VINV VS Virtualenv против Pipenv

Это все способы изолировать среду Python Pip, чтобы не загрязнять вашу основную систему Python. Удаление пакета и его зависимости – боль в пипсе. Это позволяет избежать этого, позволяя вам легко удалить и создавать новые ENV.

Но какой из них ты ходишь?

Венв VS Virtualenv против Pipenv

Просто иди с Веном. Он поставляется стандартным с Python и официально рекомендуется пост 3.3+. У него также есть меньше готов, чем Virtualenv И я не хочу быть полученным.

Чтобы создать новую папку VINV Python -M VINV VINV

загрузить среду Источник Venv/Bin/Activate

Выключите Venv дезактивировать

Pipvenv приятно, но это не стандартно и основано на VirtualenV.

Python 2.7 и Венв

Венский не поддерживает Python 2.7, Bummer.

Простое решение PIP Установите PY2VENV

Это устанавливает Virtualenv для вас и создает обертку вокруг VirtualenV. Это означает, что вы можете использовать команду venv. Большой!

Где поставить вашу папку VINV?

Если вы просто запустите один VINU на проект, поместите его в тот же каталог, что и корневой проект и назовите папку «Venv». Убедитесь, что в вашем .Gitignore Вы добавили «Vinv’-на Github и GitLab, это добавлено для вас».

Один VINV Environment на проект Project_Root/Venv.

Вопросы приходят, когда вы хотите разные среды VINV для разных версий Python, вы тестируете. Вот несколько вариантов

Несколько Venv на проект Project_Root/Venv/{{python_version}}

Альтернатива, Venv в домашней папке ~/venv/{{project_name}} _ {{python_version}}

setup.py

Setup.py похоже на makefile для вашего приложения. Это основано на выключении устаревших. Обычно это приходит предварительно установленным. Если нет, вы можете установить его так

PIP Установить StuteWools

Документация можно найти здесь Отказ Некоторые части либо запутаны или не работают, как ожидалось. Я отметил частей здесь.

Вы можете увидеть пример моего setup.py в pyquilted источник

Командная строка входной точки

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

В вашем корневом проекте создайте файл с именем main.py. Иметь одну функцию названной главной, которая вызывает вашу функцию запуска. Пример здесь Отказ

Добавьте следующее в свой Setup.py

entry_points={
    'console_scripts': ['command=pacakge.main:main']
}

Где «команда» – это команда, которую вы хотите использовать. «Пакет» – это имя вашего пакета.

Например, моя точка входа в Pyquilted «Console_Scripts»:. Главная: Main ']

Markdown Readme.

Pypi сейчас поддерживает Markdown. Используйте A с обработчиком открытого файла для установки Doc Readme в перемему.

long_description=readme,
long_description_content_type='text/markdown'

В том числе файлы не PY

Существует два способа добавления файлов на ваш сайт_Packages для данных или пакет исходных данных для тестовых случаев и таких.

Пакет данных

Используйте формат ниже для добавления файлов данных в пакеты сайта.

package_data={
    'package_name': ['directory/*.pattern']
},
include_package_data=True

MANIFEST.in

Это включает в себя файлы в вашем исходном пакете, которые не находятся в папке пакетов вашего сайта. Формат немного странный.

include file   # include single file
recursive-include directory pattern # include a directory and files

требования

Пропустить это. Это не совсем необходимо, но просто сделать.

Введите Пьенв

Все еще плачу над катастрофой, который был мигрировать из Python 2-3. Я тоже присоединяюсь к клубу. Нам все еще нужно поддерживать Python 2 и проверить другие версии 3. Как решить несколько версий Python? Мы могли бы узнать бродягу или докера. Нах это путь наполнителя.

Решение Пьенв.

Установите PENV, следуя инструкциям здесь пинв .

Список установочных версий Python Pyenv Install --List.

Установить версию PENV УСТАНОВКА 2.7.15.

Установлены версии списка Версии Pyenv

Переключиться на версию Python PENV GLOBAL 2.7.15.

Debian, Ubuntu и другие

На Debian, Ubuntu и других дистрибутиве вы получите ошибку о SSL при попытке создать более старые версии Python. Вопрос в том, что LibSSL 1.1 не совместим с Python <3.3. Решение состоит в том, чтобы загрузить заголовки DEV для LibsSL 1.0 и ссылку их вручную при запуске установки Pyenv, на этот нить Отказ

CFLAGS="-I/path_to/libssl1.0-dev/include -I/path_to/libssl1.0-dev/include/x86_64-linux-gnu" \
LDFLAGS="-L/path_to/libssl1.0-dev/lib/x86_64-linux-gnu" pyenv install 2.7.15

Яйца везде

Чтобы остановить Python от создания яиц, которые вы случайно загружаете в Pypi, когда вы тестируете.

Используйте команду ниже Установка PIP.

Вместо этой команды Python Setup.py. установить

Здание и колеса

Честно говоря, файлы колеса не нужны. Разница в установке между источником и двоичным и двоичным является как несколько секунд. Однако это действительно легко строить двоичные колеса, так почему бы и нет.

Убедитесь, что у вас установлено колесо Установить колесо PIP

Запустите это, чтобы построить свои пакеты python setup.py sdist. bdist_wheel

Наконец загрузка в Pypi

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

Загрузить с помощью этой команды Шпагата Загрузить --skip Существующий DIST/*

Ключ пропускает существующие файлы, в противном случае вы получаете ошибки при загрузке папки Dist с существующими файлами.

Поздравляю!

Поздравляю, вы побили последний босс! Похлопайте себя на спине, чтобы наконец-то расшифровать среду Python Dev.

Оригинал: “https://dev.to/cocoroutine/the-skinny-on-python-dev-environment-and-packaging-pip-74b”