Найти зависимости модуля Pypi перед установкой

Этот вопрос часто задают, но удовлетворительного ответа никогда не бывает.

Вот моя ситуация. Я работаю на безопасном объекте. Моя настольная система может подключаться к Интернету, но я не могу устанавливать неутвержденное программное обеспечение, включая Python. Есть лаборатория, в которой установлены Python 2.7 и 3.7, но у нее нет доступа к Интернету. Я скачал example-1.0.0.tar.gz из PyPy и скопировал его на лабораторный сервер, но pip говорит, что хочет установить запросы ==2.9.1. Я могу это сделать, но мне бы очень хотелось получить список всего, что мне понадобится, и сделать их все одновременно.

Я мог бы установить пакет дома, а затем использовать "pip show", но дома это бесполезно, поэтому я захочу удалить его, как только я закончу, и это, похоже, потребует много усилий.

Есть идеи?

1 ответ

Решение

Создайте виртуальную среду на компьютере с доступом в Интернет и используйте --copies возможность убедиться, что файлы не являются символическими ссылками. Затем скопируйте всю среду на целевую машину и используйте ее там.

# create the environement
python3 -m venv venvfoldername --copies
# activate the environment
. venvfoldername/bin/activate
# install your requirements together with their dependencies
pip install -r requirements.txt
# copy everything to target machine
scp -r venvfoldername labhostname:/path/on/the/server
# connect there and activate the environment
ssh labhostname
cd /path/on/the/server/
. venvfoldername/bin/activate
# you can also use it like that
/path/on/the/server/venvfoldername/bin/python foobar.py

У тебя должно быть все под рукой.

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