在安装之前查找Pypi模块的依赖项

时间:2018-01-18 20:28:42

标签: python pip

这个问题被问了很多,但是从来没有一个令人满意的答案。

这是我的情况。我在一个安全的设施工作。我的桌面系统可以连接到互联网,但我不允许安装未经批准的软件,包括Python。有一个安装Python 2.7和3.7的实验室,但它没有Internet访问权限。我从PyPy下载了example-1.0.0.tar.gz并复制到实验室服务器,但是pip说它想要安装请求== 2.9.1。我可以做到这一点,但我真的想得到一份我需要的所有内容的清单,并一次完成所有这些。

我可以在家里安装包,然后使用“pip show”,但这在家里没用,所以我想在完成后卸载它,这看起来很费劲。 / p>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在具有Internet访问权限的计算机上创建virtual environment并使用--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

你现在应该掌握一切。