设置 Spyder 工作区和项目的基础知识

Basics of setting up a Spyder workspace and projects

我在 Spyder IDE 中搜索了有关工作区和项目的基本教程。我想了解的是如何使用工作区和项目来组织我的代码的基本概念。看来这可能是基本的编程技能,这就是为什么我无法找到任何概述的原因。 This page seems to be related, but is actually about Eclipse and rather sparse. The Pythonxy tutorial and the documentation for Spyder不赘述。 Anaconda 文档也没有。

我的问题是:

我应该什么时候设置新工作区(如果有的话)?

我什么时候创建新项目?

PYTHONPATH 如何依赖于我的工作区和项目设置?在所有情况下都是一样的还是我可以根据 workspace/project 自定义它?

除了 PYTHONPATH 之外,我还应该配置其他设置吗?

以上对 Spyder 的回答有多具体?其他 IDE 是否也一样,例如 Eclipse?

我是 运行 Spyder on 64-bit Windows 7,作为 Anaconda 包的一部分。

根据我的经验,在 Spyder 中设置工作space 并不总是必要的。 作品space 是您计算机上的一个space,您可以在其中创建和保存您使用的所有文件。作品space 通常有助于管理您的项目文件。 在 Spyder 中创建作品space 后,一个名为 "Project Explorer" 的窗格会在 Spyder 中打开。在那里您可以实时看到项目的文件。例如,如果您使用 Python 生成一个文件,它将显示在该窗格中。 该窗格让您可以组织文件、过滤文件等。这对于 Web 开发很有用,因为它可以帮助您组织内容。 我使用 Python 来处理文件(例如 csv)和处理数据(数据分析),但我发现 workspace 功能没有用。 此外,如果您在 Project Explorer 窗格中删除文件,则无法在 Windows 回收站中找到该文件。

Spyder 文档中似乎缺少的一条关键信息是如何首先创建一个新工作区。当安装 Spyder 后不存在工作空间时,创建您的第一个项目会自动启动工作空间的创建(至少在 Anaconda 3 发行版中)。然而,当一个工作区已经存在时,如何创建一个新的工作区并不那么明显。

这是我找到的创建新工作区的唯一方法:

(1) Select Spyder 中的 Project explorer window。如果此 window 或选项卡未出现在 Spyder 应用程序的任何位置,请使用 View > Panes > Project explorer 启用 window.

(2) 单击 项目浏览器 window upper-right 角的文件夹图标。此图标会弹出一个可以创建新工作区的对话框。该对话框允许为 .spyderworkspace 文件选择目录。

2016 年 10 月更新: Spyder 3 现在具有类似于其他 IDE(尤其是 Rstudio)的项目工具。

现在如果你有一个包含脚本的文件夹,你可以去

Projects > New Projects > Existing Directory

导入它。所选目录将设置为项目的基本目录。

我用spyder做数据分析,刚刚开始使用project workspace。我相信,由于组织的原因,它可以让您编写更好的代码。正如之前的 post 所说 "This can be helpful in web development",这是事实,因为由于文件的复杂性以及它们之间的交互方式,Web 开发需要良好的软件工程。这个organization/structure也可以用于数据分析

通常,使用 Anaconda 的数据分析师具有工程或科学背景,不一定是软件工程或计算机科学。这意味着可能缺少良好的软件工程原则(包括我自己)。设置工作区可以做一件我认为讨论中遗漏的关键事情。它将工作区添加到系统路径。建立一个项目然后尝试

import sys
print sys.path

您将看到您的项目目录已添加到 PYTHONPATH 中。这意味着我可以分解我的项目并从项目中的不同文件导入函数。当分析变得复杂或您想创建某种类型的定期使用的较大模型时,这非常有用。我可以在一个文件中创建我所有的函数,也许在另一个文件中创建绘图函数,然后将它们导入到一个单独的脚本文件中。

在myScript.py

from myFunctions import func1
from myFunctions import func2
from myPlots import histPlot

这是一种更简洁的数据分析方法,可让您一次专注于一项特定任务。

在 python 3 中有 %autoreload 功能,因此您可以处理您的函数,然后返回您的脚本文件,如果您发现错误,它会在每次重新加载它们。我还没有尝试过这个,因为我的大部分工作都是在 2.7 中进行的,但这似乎会在开发时增加更大的灵活性。

那么你应该什么时候做呢?我认为这总是一个好主意,我刚开始使用这个设置,我永远不会回头!