我通过SSH和OPENVPN控制远程单元。
在远程设备上,我想使用pip
安装一些Python包,但是:
pip
所需的443); 剥离数小时的尝试(我不是系统管理员,而且我对这个主题的了解非常有限),想法是打开一个明显的SSH端口转发:
ssh -R 9999:pypi.python.org:443 xxxx@XX.XX.XX.XX
然后,在远程单元上玩pip install
:
pip install pymodbus==1.3.2 --proxy localhost:9999
但是这个命令返回:
Cannot fetch index base URL https://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement pymodbus==1.3.2
/root/.pip/pip.log
是:
Getting page https://pypi.python.org/simple/pymodbus/
Could not fetch URL https://pypi.python.org/simple/pymodbus/: connection error: ('Connection aborted.', BadStatusLine("''",))
Will skip URL https://pypi.python.org/simple/pymodbus/ when looking for download links for pymodbus==1.3.2
Getting page https://pypi.python.org/simple/
Could not fetch URL https://pypi.python.org/simple/: connection error: ('Connection aborted.', BadStatusLine("''",))
Will skip URL https://pypi.python.org/simple/ when looking for download links for pymodbus==1.3.2
Cannot fetch index base URL https://pypi.python.org/simple/
URLs to search for versions for pymodbus==1.3.2:
* https://pypi.python.org/simple/pymodbus/1.3.2
* https://pypi.python.org/simple/pymodbus/
Getting page https://pypi.python.org/simple/pymodbus/1.3.2
Could not fetch URL https://pypi.python.org/simple/pymodbus/1.3.2: connection error: ('Connection aborted.', BadStatusLine("''",))
Will skip URL https://pypi.python.org/simple/pymodbus/1.3.2 when looking for download links for pymodbus==1.3.2
Getting page https://pypi.python.org/simple/pymodbus/
很明显远程单元无法读取pypi.pthon.org上的索引页面,因为连接被拒绝。
我想要实现的目标是什么正确的语法?
答案 0 :(得分:1)
代理将非常棘手。我建议您scp pip模块源文件并从源文件本地安装。使用
pip install package –download =“ / pth / to / downloaded / file”以获取该软件包,将其scp到目标服务器,然后使用pip install“ / pth / to / scp / file”
答案 1 :(得分:0)
这似乎是我的问题。经过探索,我找到了解决方案。 而且因为在我所在的地区,pypi.python.org运行缓慢,所以我更改了pip.conf并将pypi.douban.com/simple用作索引URL。本网站使用http协议。所以在我的解决方案中。我使用80端口作为目标端口。
问题: 我有两个主持人。 host1可以连接Pypi.douban.com。而host2不能。 但是我可以通过ssh在host1中连接host2。
因此在host2中,我通过本地端口转发(不是远程端口转发)打开一个tmux会话并打开ssh隧道:
ssh -L 9999:pypi.douban.com:80 username@host1
此重定向后,我可以使用
pip install scikit-learn --proxy localhost:9999
将软件包安装在host2中。