質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

受付中

実行時にはエラーにならないのに、PyLintがエラーになります

tacchang
tacchang

総合スコア15

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。

2回答

0評価

2クリップ

13611閲覧

投稿2017/07/26 08:24

###前提・実現したいこと
Python 3.6.1とSQLAlchemy1.1.12の勉強のため、CSVからSQLiteにデータを登録するサンプルプログラムを実行しました。
エディタはVSCode 1.14.2を使用し、PyLint 1.7.2をインストール(拡張)しています。

そこで、PyLintがエラーを指摘するのですが、実行時にはエラーになりません。おそらくコードとしては問題ないと思っています。

PyLintがエラーと誤認しない設定方法が知りたくご相談です。

###発生している問題・エラーメッセージ

'E1101:Instance of 'SessionContext' has no 'add' member' at: '62,9' 'E1101:Instance of 'SessionContext' has no 'query' member' at: '67,15'

###該当のソースコード

# -*- coding: utf-8 -*- from sqlalchemy.engine import create_engine from sqlalchemy.orm.session import sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.schema import Column from sqlalchemy.types import Integer, String Base = declarative_base() class SessionFactory(object): def __init__(self, sql_connection, echo=False): self.engine = create_engine(sql_connection, echo=echo) Base.metadata.create_all(self.engine) def create(self): Session = sessionmaker(bind=self.engine) return Session() class SessionContext(object): def __init__(self, session): self.session = session def __enter__(self): return self.session def __exit__(self, exc_type, exc_value, traceback): self.session.flush() self.session.commit() self.session.close() class SessionContextFactory(object): def __init__(self, sql_connection, echo=False): self.session_factory = SessionFactory(sql_connection, echo) def create(self): return SessionContext(self.session_factory.create()) # お試しマッピングクラス class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) def __repr__(self): return '<User(%d, %s)>' % (self.id, self.name) if __name__ == '__main__': sc_factory = SessionContextFactory('sqlite:///sqlite3.db', False) with sc_factory.create() as session: # session を使って色々やる new_user = User(name='amedama') session.add(new_user) # インデントを抜けたら session は commit/close 済み pass # session が必要になったら、もう一度 with を使う with sc_factory.create() as session: print(session.query(User).all())

###補足情報(言語/FW/ツール等のバージョンなど)

ソースコードは、「Python の with 文で SQLAlchemy のセッションを管理する」を参考にさせて頂きました。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SQLAlchemy

SQLAlchemyとはPython 用のORMライブラリです。MIT Licenceのオープンソースとして提供されています。