回答问题

我正在通过 SSH 和 OPENVPN 控制远程设备。

在远程单元上,我想使用pip安装一些 Python 包,但是:

  • 远程公司防火墙只允许端口 22 上的流量(而不是 443,pip需要);

  • 远程单元上没有安装DNS;

  • 我无法修改任何 OPENVPN 设置(或者我想避免使用此选项,因为这意味着要访问一些远程系统管理员并试图说服他必须更改配置);

  • 所有系统都是Linux(Ubuntu + Debian)。不涉及 Windows。

减少数小时的尝试(我不是系统管理员,我对这个主题的了解非常有限),这个想法是打开一个明显的 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 上的索引页,因为连接被拒绝。

我想要实现的正确的语法是什么?

Answers

代理会很棘手。我建议你 scp pip 模块源文件并从源代码本地安装它。利用

pip install package —downloadu003d"/pth/to/downloaded/file" 获取包,将其scp到dest服务器并使用 pip install "/pth/to/scp/file"

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐