Как распространять код python3, который содержит внешние библиотеки - PullRequest
0 голосов
/ 17 октября 2019

Я написал небольшой скрипт на python3, который использует numpy, matplotlib и другие библиотеки, используемые pyCharm CE на моей машине с Linux.

Я использовал pyCharm для кодирования и создания виртуальной среды. Скрипт работает только внутри pyCharm из-за зависимостей. И мой друг хочет использовать мой сценарий в машине Windows. Я не уверен, что даже если у него установлен python.

Как запустить скрипт вне pyCharm или как активировать виртуальную среду, созданную pyCharm для запуска скрипта?

И

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

Спасибо

1 Ответ

0 голосов
/ 17 октября 2019

Один из способов попросить вашего друга установить python3.x и pip в его системе. Тем временем вы создаете requirements.txt, который состоит из библиотек, которые необходимо установить, и их версий в этом формате.

dj-database-url==0.5.0
Django==2.2.5
pytz==2019.2
sqlparse==0.3.0
psycopg2>=2.7,<3.0

Затем попросите вашего друга запустить pip install -r <path to requirements.txt>. Это установит все необходимые библиотеки, и если нет основанных на OS зависимостей, тогда проект должен нормально работать.

Еще один способ сделать это в случае более крупного проекта, где есть зависимости OS, этоиспользовать containerization инструмент, такой как docker. Контейнеризация позволяет вам запускать проекты на других компьютерах, которые зависят от различных пакетов или сред, которые доступны / установлены на вашем компьютере.

Например: представьте, что я создал приложение на основе Python, которое зависит от нескольких пакетов вмоя Debian машина. Я могу собрать docker image, используя python3.x в качестве базы, и установить необходимые пакеты внутри image в течение build времени. Это довольно просто сделать. После этого я могу нажать image на docker hub, который является реестром для хранения docker images. Обратите внимание, что images, хранящиеся здесь, являются общедоступными. Если вас это беспокоит, вы можете использовать личный реестр AWS ECR для хранения images. После того, как я нажму image, любой, у кого есть доступ к image, сможет вытащить его и раскрутить container. container - это экземпляр image, который может запускать приложения / скрипты / все, что собирается сделать image. Чтобы иметь возможность раскручивать containers, им потребуется docker, установленный на их машине.

Таким образом, вы можете поделиться своим проектом и запустить его на любой машине с минимальными трудностями, насколько это возможно. Им не нужно ничего, кроме docker, установленного на их машине. В отличие от Virtual Machine docker containers не тяжелые на вашей машине.

В вашем случае, используя docker, вы можете создать image (очень похоже на ISO-образ) с python3.x в качестве базы и установить все необходимые пакеты, такие как numpy, matplotlib и другие. библиотеки, затем скопируйте сценарии, необходимые для запуска проекта, в image и поместите его в docker hub или в личный реестр по вашему выбору. Тогда вы можете дать своему другу доступ к image. Вашему другу потребуется Docker for Windows, установленный на его машине, чтобы иметь возможность раскрутить container, используя предоставленное вами изображение. В этом контейнере будет запущен ваш скрипт, так как в нем будут установлены все необходимые зависимости, которые вы установили при создании самого изображения.

Подробнее о Docker: https://www.docker.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...