Могу ли я просто скопировать модуль для python из старой папки в новую?

273 просмотра
0
0 Комментариев

Я установил python на новый сервер и мне нужно обойти установление модуля requests. Он есть на другой машине. Можно ли просто скопировать файлы манульно? Будет ли все работать правильно или это не лучшая практика?


Добавить комментарий

2 Answers

Python Опубликовано 18.12.2018
0

Pip freeze

По-моему, самое лучшее для новичка и лентяя — это делать pip freeze > requirements.txt, получим список установленных модулей с их версиями. После этого на новой машине делаем pip install -r requirements.txt, и подгружаем нужные нам модули с точно такими же версиями.

Virtualenv

Так же рекомендуется использовать virtualenv — это инструмент, позволяющий создавать виртуальные окружения с пакетами. Можно рассмотреть ее как своего рода «песочницу». Разные «песочницы» имеют разный набор пакетов разных версий. Плюс к этому уходит проблема засорения системы ненужными пакетами, так как «песочницы» можно легко создавать и удалять. В песочницу устанавливаются пакеты, которые необходимы для конкретной реализации. Используя два virtualenv на проект — одного чистого, содержащего минимальный набор зависимостей, и одного, предназначенного для разработки. Думаю, такой подход в любом случае не лишен смысла, так как вряд ли вы захотите тянуть на боевой сервер всевозможные моки и фреймворки для тестирования.

Статья о том как использовать virtualenv.

Python way

Чтобы объявить необходимые зависимости для своего пакета, можно указать их в install_requires в setup.py. И вообще написание для своего проекта setup.py — это лучшая практика, о чем написано в этой документации.

Добавить комментарий
0

Если версии питона (и возможно, разрядность ОСИ) совпадают и Вы все скопируете правильно, то должно работать. Но не нужно забывать о такой штуке как зависимости. Их тоже нужно будет разрешить.

В целом, лучше просто поставить все нужные Вам модули с помощью пакетного менеджера или обычным pip. Иначе в будущем Вы можете оказаться в ситуации, когда какой то пакет будет ставить зависимости и захочет поставить request (или просто обновить его или его зависимости) и все развалится.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up