4

我在 Eclipse+Pydev 中使用了 python 大约一个月。(32 位 Win 7)我最近安装了 WinPython(https://code.google.com/p/winpython/),因为我想要几个相互依赖的包来进行数据分析,这对于 Python 3 来说是一个简单的解决方案。

Winpython 很好,因为它不会修改系统设置——它是独立的,可以从外部驱动器运行。它还内置了 Spyder IDE,但我还不相信这是我想要使用的 IDE。

谁能解释我如何在不使用 WinPython 控制面板“注册”WinPython 发行版的情况下将 Eclipse/Pydev 指向 Winpython 发行版?

顺便说一句:我认为 WinPython 会是正确的标签,但它不存在,我没有代表来创建它......

谢谢!

更新详细答案

感谢enginefree(在下面的评论中)我想通了。这正是我让 WinPython 在 32 位 Windows 7 上的 Eclipse+ PyDev 中工作的方式。这假设您在执行此操作之前已经让 PyDev 与标准 Python 发行版一起工作。这还假设您没有使用 WinPython 控制面板“注册”WinPython 分发。这可能使 PyDev 中的 AutoConfig 能够工作,但我没有这样做。

事实证明这很容易,但我正在详细描述以帮助像我这样的其他人:

1) 找出解压 WinPython 的路径。对我来说,它位于:C:\WinPython-32bit-3.3.2.1

2) 找到位于 WinPython 发行版中的 python exe。对我来说是: C:\WinPython-32bit-3.3.2.1\python-3.3.2\python.exe (不是 pythonw.exe 或该目录中的任何其他 EXE)

3) 启动 Eclipse + Pydev 并导航到定义解释器的位置:Window -> Preferences -> PyDev -> Interpreter - Python

4) 在窗口顶部窗格的 Python Interpreters 部分中选择 New...。请注意,我在这里的任何地方都没有使用自动配置。

5) 在弹出窗口中,给出你想要的任何名称(我使用了 winpython,但当我安装另一个版本时,我可能应该将其命名为 winpython3d3 或其他名称)。然后选择 Browse... 并从上面的步骤 2 导航到 python.exe 文件,选择它,然后单击 OK。

6) 在 Python Interpreters 窗口的顶部窗格中选择新命名的解释器,单击向上将其移动到您定义的解释器列表的顶部。(我认为这将使其成为新项目的默认设置。)

7) 在 Python Interpreters 窗口的底部(虽然新命名的解释器仍在顶部窗格中突出显示),单击 Apply。如果一切顺利,底部的 System PYTHONPATH 窗格会显示指向所有 WinPython 库的指针。这花了好几秒钟。

8) 单击确定关闭 Python 解释器窗口。

9) 确保您处于 PyDev 透视图中(Ctrl-F8 直到 PyDev 突出显示或窗口 -> 导航 -> 下一个透视图并单击 PyDev)

10) 右键单击​​您的项目,选择属性,然后选择 PyDev - Interpreter/Grammar。确保在解释器框中选择了新命名的 python 解释器(来自上面的步骤 5)。(由于我使用的是 Python 3.3,所以我还选择 Python 作为项目类型,语法版本为 3.0)

11) 选择确定。此时,在 Package Explorer 的底部,您应该会看到一个文件夹,其中包含您为 python 解释器指定的名称。如果展开该文件夹,您应该会看到 PyDev python 解释器定义的路径。特别是,当我在 PyDev 包资源管理器中展开该文件夹时,我通过找到 matplotlib 来验证我是否选择了正确的库:InterpreterName -> System Libs -> lib/site-packages -> matplotlib

12)右键单击您的项目并选择刷新

13) 关闭并重新启动 ECLIPSE!在我重新启动之前没有任何效果。

我希望这可以帮助别人。

4

1 回答 1

2

确保您安装winpython在与 eclipse/pydev 相同版本的 python 上。然后导航到window->preferences->pydev->Interpreter python。然后点击应用。如果这不起作用,请通过相同的界面手动加载模块。现在对你的项目做同样的事情,确保项目有正确的解释器。然后重新启动eclipse,最后尝试导入模块。

于 2013-08-30T23:43:41.060 回答