【问题标题】:Define remote interpreter on remote Linux machine using Pydev and RSE Server使用 Pydev 和 RSE 服务器在远程 Linux 机器上定义远程解释器
【发布时间】:2012-06-16 15:52:00
【问题描述】:

我有一个 Windows 盒子和一个 Linux 红帽盒子。

Eclipse 已安装在 Windows 上,遵循此 eclipse page 上给出的说明。我设法建立了一个在 Linux 机器上运行的 RSE 服务器;我还可以在远程机器上创建一个项目。

其实我是在Linux上使用虚拟环境,开发的时候想选择它们。

有没有办法为 PyDev 或 Django 项目定义一个远程解释器

【问题讨论】:

  • 如果你得到它的工作,你介意在这里发布你的解决方案吗?
  • 恐怕PyDev无法使用远程解释器:Eclipse PyDev use remote interpreter
  • 这可能是一种愚蠢的方式,但如果你有 cygwin,你可以使用 scp 之类的东西将解释器复制到你的窗口
  • 我有以下设置:主机上的 Ubuntu 16.04-64;运行 Ubuntu 16.04-64 的 LXC 容器通过 ssh 连接;几个 django 项目(pure django、django-cms、wagtail cms)位于 /home/ubuntu/dir1、dir2、dir3 内的不同目录中;

标签: python eclipse virtualenv pydev


【解决方案1】:

我曾经在 Ubuntu 虚拟机中使用 远程 python 解释器时遇到过同样的问题。我想你也应该能够通过ssh 进行连接。

虽然 Pycharm 可以有远程解释器(即使虚拟机使用 Vagrant),但像我这样的一些人更喜欢像 Sublime Text 3 这样的编辑器,即不是 IDE。在那里,您可以指定主机内任何解释器的路径。我猜 Pydev 还允许在主机内部指定一个 python 解释器。

我能找到使用远程解释器的最简单方法(但可能不是最好的方法)是在我的主机中安装虚拟机的环境文件夹(python 可执行文件和模块所在的位置)。所以,你可以这样做:

  1. 在虚拟机中(来宾)-->在您想要的任何路径中创建一个虚拟环境,例如~/myGuestEnvs/testEnv/。您可以使用之前使用pip 安装的virtualenv 来执行此操作。

  2. 在您的主机中 --> 安装win-sshfs 并将虚拟机的对应文件夹安装在您的主机中,如下所示~/myGuestEnvs/testEnv/ --> ~/myHostMountedFolder/。如果我理解得很好,您是从 Windows 编码并在 Linux 上运行代码。我必须承认,在 Windows 上通过ssh 挂载磁盘并不是最简单的方法,但仍然可以!其他方式可以查看this SoF question

  3. 始终在您的主机中 --> 将您的 python 解释器指向已安装的文件夹:python_interpreter --> ~/myHostMountedFolder/bin/python

小心,如果你只挂载/指向环境的bin文件夹,python可执行文件所在的位置,你将丢失所有代码完成goto definition... IDE 的可用性,因为它无法定位您导入的模块。

我应该补充一点,如果虚拟机关闭,那么 Pydev 将无法使用 python_interpreter,因为挂载的文件夹将为空。每次写代码都需要启动虚拟机,如果没有,可能会使用默认的主机python解释器和主机python包。

【讨论】:

  • 我在 3 步时遇到问题,当我尝试在 eclipse 中导航到 windows 中已安装的解释器并选择 linux python 解释器时,我遇到消息无法添加 linux python
【解决方案2】:

Pycharm IDE 支持从远程解释器运行您的项目/程序,还支持部署到远程服务器(作为 专业版 的一部分提供)。

Pycharm 也支持 Git/Vagrant/GoogleApp Engine。

【讨论】:

    【解决方案3】:

    我设法以这种方式工作的唯一 Python 产品(如 Eclipse 调试 Java 中的远程代码)是(商业的、专有的)WingIDE。

    【讨论】:

    • PyCharm 也做得很好。它也是一个专有系统。
    【解决方案4】:

    我通过以下方式设法实现了这一目标:

    1) 创建一个python venv

    python3 -m venv /home/me/venv
    

    2) 转到 Window->Preferences->PyDev_Interpreters->Python Interpreter-> Browse for python/pypy 将 pydev 解释器设置为 venv

    3) 如果需要,备份 python 可执行文件:

    mv /home/me/venv/bin/python3 /home/me/venv/bin/python3.bkp
    

    4) 新建一个同名的python可执行文件:

    nano /home/me/venv/bin/python3
    

    5) 粘贴以下内容:

    #!/bin/bash
    
    remote_username=me
    remote_interpreter=python3
    remote_hostname=10.0.0.1
    
    file_path=(${2//$remote_hostname/ })
    
    ssh $remote_username@$remote_hostname "$remote_interpreter $1 ${file_path[1]}"
    

    6) 更改 remote_username、remote_interpreter 和 remote_hostname 以匹配您的配置。

    享受吧!

    【讨论】:

      猜你喜欢
      • 2013-01-20
      • 2020-08-20
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多