我想在没有互联网的计算机上安装软件包(通过 ssh连接)从计算机上安装软件包。
我的想法是,不是为每个项目+ python版本上传单独的pip包(与你想要使用虚拟环境的原因相同),我想安装目标包。具有Internet访问权限的计算机上的空虚拟环境,然后scp
从my_env/lib/python3.6/site-packages
到远程计算机的所有依赖项。
然后我从那里pip install
。
理想情景:
有互联网的机器
$ python -m venv my_env
$ source ./my_env/bin/activate
(my_env) $ pip install lime
然后将my_env/lib/python3.6/site-packages
发送到远程计算机(让我们将其命名为source_packages/
)
没有互联网的机器
$ sudo pip install lime --find-everything-in ./source_packages
我试过
pip install lime --no-index --find-links path/to/my_env/lib/python3.6/site-packages/
但这会引发错误:
收集石灰
找不到满足要求lime的版本(来自>版本:) 没有匹配的石灰分布
建议的解决方案(请参阅注释)即将开始工作,除非我遇到平台兼容性问题。 Internet机器是Mac,远程服务器是CentOS。
因此,我担心在某些情况下解压缩服务器的lib / python3.6 /目录中的site-packages /会失败。关于pip download
解决方案,它也是部分的,因为默认行为是根据当前平台下载,但--platform
标志仅适用于二进制文件。因此,无法下载指定平台的lime
包。
解决方法是能够运行
之类的东西pip download --only-binary=:all: --platform=linux_x86_64 lime
但如果要求的二进制文件不可用,则下载源后退