【问题标题】:Sublime vs. PyCharm for Python developing [closed]用于 Python 开发的 Sublime 与 PyCharm [关闭]
【发布时间】:2014-01-22 20:04:10
【问题描述】:

我使用 ST2 已经有一段时间了,鉴于 python 现在是我的主要语言,我决定尝试 PyCharm。它有点混乱,我对 Sublime 的爱让我远离。但是,PyCharm 能够以某种方式完成以下 Sublime 无法做到的事情:

  1. 在对象后键入句点并获取其所有属性的正确列表(Sublime 可以做到这一点,除了它返回随机属性)
  2. 跨整个项目/文件夹重构变量
  3. 显示用它们定义的方法的文档字符串

它还有一些 Sublime 还不能完成的重要功能。我已经在 Sublime 中安装了许多软件包,除了上面的 3 件事之外,它们几乎可以做 PyCharm 可以做的事情。

回到问题:鉴于 Python 不是强类型语言,PyCharm 如何提供此功能?

【问题讨论】:

  • How can PyCharm supply this functionality given that Python is not a strongly typed language? 这是一个很大很大的问题,几乎不可能回答。
  • Sublime Text 是一个很好的文本编辑器。 PyCharm 是一个集成开发环境。这是一个很大的区别。
  • Python 一种强类型语言。将鼠标悬停在[python] 标签上,您会看到...
  • 扩展@MattDMo 所说的,Python 强类型的,这意味着你不能做像'Puppy' + 34'Cat' < 34334 这样的事情(在Python 3.x )。它也是动态类型的;这就是大多数人感到困惑的地方。不过,这些不是同义词。

标签: python sublimetext2 sublimetext pycharm sublime-text-plugin


【解决方案1】:

如果您正在寻找更好的自动补全功能,请尝试 SublimeCodeIntel,可通过 Package Control 获得。索引您的内置模块和第三方包需要一些时间,但一旦准备好,它就会非常有帮助。例如,使用 Pandas,我可以定义一个数据框:

df = pd.DataFrame(some_input_data)

然后键入df.,就会出现DataFrame 对象的所有相关类和方法。要进行此设置,您需要将以下内容添加到您的用户首选项 (Preferences -> Settings - User):

"auto_complete_triggers":
[
    {
        "characters": ".",
        "selector": "source"
    }
]

以及您可能拥有的任何其他触发器。

更新

虽然 SublimeCodeIntel 是一个不错的软件包,但它并不总是能很好地工作 - 它有时会在查找新安装的模块时遇到问题,数据库可能会损坏,有时自动完成可能会出现明显延迟,它在使用 virtualenvs 时会遇到问题,以及有时它只是不起作用。如果您使用的是 Sublime Text 3,我强烈建议您改用 Anaconda(与 Anaconda Python 发行版无关)。一旦你设置了它(一个非常简短的过程,基本上你只需指定你想使用的 Python 解释器),它就可以工作了。没有要初始化或损坏的数据库,它会自动发现您何时添加了新包,它在后台运行非常不显眼......我不能说太多关于它的好东西。它使用 JEDI 自动完成模块等,并且快速准确。它会自动确定类型变量是什么,并使用可以在其上调用的适当方法和类来填充补全。你也可以让它完成参数完成,但这对我来说有点烦人,所以我把它关掉了。它不能做的一件事是方法链接,但没有什么是完美的。它还包括用于代码复杂性检查和 linting 的模块,这很好,但我不需要它,并且只想在我想要 lint 时进行 lint,所以我也将其关闭。它与 SublimeCodeIntel 的另一个主要区别是 Anaconda 是 Python 特定的,而 SCI 支持多种不同的语言。

我强烈建议您试试 Anaconda。除了方法链接之外,我对它非常满意,并且没有回头。您可以做的一件很酷的事情是为项目文件中的"python_interpreter" 设置分配不同的值,这样您就可以轻松使用 virtualenvs,或者(像我一样)为 Python 2 编码打开一个项目,为 Python 3 打开另一个项目。

【讨论】:

  • 是的,当然,我一直在使用代码英特尔。但我不知道您实际上可以指定在期后显示什么。它真的可以省略非特定的方法/属性而只显示相关的吗?
  • 使用 ST3 非常适合我。我对其进行了相当定制,因此它可以找到深度嵌套的目录,例如 - 这可能是您的问题之一,因为默认值为 5。尝试将其设置为 25,删除~/.codeintel 中的数据库,然后看看会发生什么。
  • 哇,不可能!惊人的!我要试试这个
  • 实际上并没有让我进行这些更改:尝试解析设置时出错:~/.config/sublime-text-2/Packages/User/SublimeCodeIntel.sublime-settings:1 中出现意外的尾随字符: 25
  • 这可能只是一个放错位置的逗号之类的。你的第 1 行是什么?
猜你喜欢
  • 2011-06-03
  • 1970-01-01
  • 2012-10-19
  • 2010-09-17
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多