2014-02-15 47 views
4

我开始评估PyCharm 3专业版,因为我将在几个Pyramid + SQLAlchemy项目上工作。 我真心喜欢的事情之一是SQLAlchemy自动完成。PyCharm SQLAlchemy自动完成

我会解释我的情况。

我用炼金术脚手架创建了一个新的起动器项目,我按照这里的说明http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/pycharm/index.html。我还为我为此项目使用的解释器和虚拟环境安装了SQLAlchemy软件包。 此外,当我为此代码创建一个新的pycharm项目时,IDE建议我安装金字塔,sqlalchemy和其他包。当然,我接受了这个建议,并让IDE安装了所有这些软件包。

在models.py文件中,DBSession声明如下:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) 

在views.py文件中,DBSession采用这种方式:

one = DBSession.query(MyModel).filter(MyModel.name == 'one').first() 

于是我开始玩与IDE并做了这样的事情:键入DBSession。 IDE给了我一些建议,其中'查询'功能没有列出。然后我尝试输入:DBSession.query(MyModel)。并按下Ctrl +空格来尝试获取建议,并显示“无建议”消息。

我真的很想有我可以在我的DBSession变量上使用的函数的SQLAlchemy建议(如filter,filter_by,first等)。我会说这对我来说是强制性的:)

有什么我失踪了吗?或者,PyCharm不支持​​这个?

+0

您使用的是虚拟环境吗? – IanAuld

+0

是的,我正在使用虚拟环境,但是我意识到这可能与PyCharm无关,因为它可能不会推断某个变量在编辑器中属于某种类型。所以我必须学会没有自动完成的生活。 –

+0

转到'文件>设置> Python解释器'并确保您的虚拟环境安装SQLAlchemy被选中。有时它会选择错误的解释器,并失去自动完成支持。 – IanAuld

回答

1

注意,本教程中指出:

本指南是为PyCharm 2.7.3写的,虽然很多的话题申请PyCharm 3.

在PyCharm 3个专业,这是很更容易安装金字塔并开始使用脚手架。具体参见我的一个视频教程Pyramid in PyCharm in 5 minutes,具体时间为1:17。

此外,如果东西无法按预期工作,您也可能想要吹走您的项目并重新开始。

PyCharm 3 Professional supports SQAlchemy如下。

  • 代码洞察(2.6+)
  • 可能性的图中,以查看数据库结构。请参阅使用图表一节。
  • 代码完成和解决。 (3.0+)

查看更多关于如何使用code completion的信息。

+0

谢谢史蒂夫。您的视频非常有帮助!不幸的是,我开始使用'炼金术'脚手架新创建了一个新的金字塔项目,我仍然无法获得DBSession sqlalchemy对象的任何代码完成(也再次查看'代码完成'信息)。仍然与此斗争,并试图找出如何在30天试用结束之前获得sqlalchemy自动完成功能。任何其他建议非常感谢。 –

+0

谢谢! 在我看来,PyCharm社区版不支持与专业版不同的自动完成功能 –

5

的解决方案,我发现这(从网路上的回升)是输入提示的DBSession情况是这样的:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) 
""":type: sqlalchemy.orm.Session""" 

在此之后,代码完成,似乎在到处做工精细项目