2014-02-15 45 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""" 

在此之後,代碼完成,似乎在到處做工精細項目