Как я могу включить установленный модуль pip с моим скриптом Python?

Я написал программу шифрования в Python 3.6, которая использует модуль pycryptodomeКонкретно это импорт:

from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto.Random import get_random_bytes

Программа работает, но ее нельзя использовать без установки пользователем pycryptodome модуль сам.

Можно ли как-то включить этот пакет или я могу создать "первоначальную настройку", чтобы установить его для конечного пользователя?

1 ответ

Короткий ответ - как уже упоминалось в комментариях - вам нужно упаковать свой скрипт.


Длинный ответ - я был там раньше в первый раз - это раздражает. Способ упаковки модулей и скриптов Python постоянно развивается, и не вся имеющаяся документация постоянно обновляется. Вы можете легко прочитать недавнюю документацию, которая к моменту чтения уже содержит ошибки (т.е. устарела).

Самый простой подход, не опускаясь до конца, это простой файл для pip, который описывает зависимости вашего проекта. Это называется requirements.txt, Актуальную информацию можно найти здесь.

Если этого недостаточно, вы должны упаковать свою заявку. Хороший, но мало поддерживаемый и несколько устаревший обзор / введение можно найти здесь. Это хорошо для начала, но НЕ пытайтесь следовать этому письму! Еще одно устаревшее руководство для начинающих, которое часто цитируют, можно найти здесь. Прочитайте его для понимания и не пытайтесь следовать этому письму.

Как только вы дойдете до этой точки, пришло время прочитать "Что, черт возьми? - Путешествие по девяти кругам упаковки Python". Это дает много практических советов. Самый практичный из всех: посмотрите, как это делают другие проекты, и скопируйте и вставьте... эм... извлекать уроки из этого.

Если вы не напуганы до сих пор, я могу порекомендовать посмотреть на шаблоны модулей Python. Один из лучших, которые я знаю, это "CookiePuter PyPackage". Его хорошо поддерживаемая документация доступна здесь. Если вы изучили основы упаковки Python, это быстрый и надежный способ создания всех файлов и инфраструктуры, необходимых для упаковки вашего кода.

Похвальный отзыв: есть инструменты, которые пытаются упростить весь процесс. Номер один в моем списке, который также упоминается в комментариях, - это PyInstaller ( руководство). Другой инструмент (для Windows), который обычно упоминается, - это py2exe (обновленная документация недоступна, AFAIK). Еще один перспективный и перспективный (но еще не готовый к работе?) Инструмент - это портфель ( документация). Их больше, но у всех есть свои проблемы. Есть большая вероятность, что вы в конечном итоге прочитаете вышеупомянутую литературу, пытаясь понять эти проблемы...

Другие вопросы по тегам