In [9]:
!pip install mysqlclient
Collecting mysqlclient
  Using cached mysqlclient-1.4.6.tar.gz (85 kB)
Using legacy setup.py install for mysqlclient, since package 'wheel' is not installed.
Installing collected packages: mysqlclient
    Running setup.py install for mysqlclient ... error
    ERROR: Command errored out with exit status 1:
     command: /Users/wxnacy/.pyenv/versions/3.7.6/envs/notebook/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/kz/8syfctw919zdt3shr9w5j8v00000gn/T/pip-install-gzuju0kh/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/kz/8syfctw919zdt3shr9w5j8v00000gn/T/pip-install-gzuju0kh/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/kz/8syfctw919zdt3shr9w5j8v00000gn/T/pip-record-7d7ia_ag/install-record.txt --single-version-externally-managed --compile --install-headers /Users/wxnacy/.pyenv/versions/3.7.6/envs/notebook/include/site/python3.7/mysqlclient
         cwd: /private/var/folders/kz/8syfctw919zdt3shr9w5j8v00000gn/T/pip-install-gzuju0kh/mysqlclient/
    Complete output (30 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.14-x86_64-3.7
    creating build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/__init__.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/_exceptions.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/compat.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/connections.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/converters.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/cursors.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/release.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    copying MySQLdb/times.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb
    creating build/lib.macosx-10.14-x86_64-3.7/MySQLdb/constants
    copying MySQLdb/constants/__init__.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb/constants
    copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb/constants
    copying MySQLdb/constants/CR.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb/constants
    copying MySQLdb/constants/ER.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb/constants
    copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb/constants
    copying MySQLdb/constants/FLAG.py -> build/lib.macosx-10.14-x86_64-3.7/MySQLdb/constants
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build/temp.macosx-10.14-x86_64-3.7
    creating build/temp.macosx-10.14-x86_64-3.7/MySQLdb
    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -Dversion_info=(1,4,6,'final',0) -D__version__=1.4.6 -I/usr/local/Cellar/mysql/5.7.19/include/mysql -I/Users/wxnacy/.pyenv/versions/3.7.6/envs/notebook/include -I/Users/wxnacy/.pyenv/versions/3.7.6/Python.framework/Versions/3.7/include/python3.7m -c MySQLdb/_mysql.c -o build/temp.macosx-10.14-x86_64-3.7/MySQLdb/_mysql.o
    clang -bundle -undefined dynamic_lookup -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/wxnacy/.pyenv/versions/3.7.6/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/wxnacy/.pyenv/versions/3.7.6/lib build/temp.macosx-10.14-x86_64-3.7/MySQLdb/_mysql.o -L/usr/local/Cellar/mysql/5.7.19/lib -lmysqlclient -lssl -lcrypto -o build/lib.macosx-10.14-x86_64-3.7/MySQLdb/_mysql.cpython-37m-darwin.so
    ld: library not found for -lssl
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    error: command 'clang' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Users/wxnacy/.pyenv/versions/3.7.6/envs/notebook/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/kz/8syfctw919zdt3shr9w5j8v00000gn/T/pip-install-gzuju0kh/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/kz/8syfctw919zdt3shr9w5j8v00000gn/T/pip-install-gzuju0kh/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/kz/8syfctw919zdt3shr9w5j8v00000gn/T/pip-record-7d7ia_ag/install-record.txt --single-version-externally-managed --compile --install-headers /Users/wxnacy/.pyenv/versions/3.7.6/envs/notebook/include/site/python3.7/mysqlclient Check the logs for full command output.
In [5]:
# pip install sqlalchemy pymysql 
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import config

SQLALCHEMY_DATABASE_URL = config.DATABASE_URL

engine = create_engine(
    SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-5-173d78124eaf> in <module>
      8 
      9 engine = create_engine(
---> 10     SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}
     11 )
     12 SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

~/.pyenv/versions/3.7.6/envs/notebook/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py in create_engine(*args, **kwargs)
    486     strategy = kwargs.pop("strategy", default_strategy)
    487     strategy = strategies.strategies[strategy]
--> 488     return strategy.create(*args, **kwargs)
    489 
    490 

~/.pyenv/versions/3.7.6/envs/notebook/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py in create(self, name_or_url, **kwargs)
     85                 if k in kwargs:
     86                     dbapi_args[k] = pop_kwarg(k)
---> 87             dbapi = dialect_cls.dbapi(**dbapi_args)
     88 
     89         dialect_args["dbapi"] = dbapi

~/.pyenv/versions/3.7.6/envs/notebook/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py in dbapi(cls)
    116     @classmethod
    117     def dbapi(cls):
--> 118         return __import__("MySQLdb")
    119 
    120     def on_connect(self):

ModuleNotFoundError: No module named 'MySQLdb'
In [ ]:
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String

class User(Base):
    __tablename__ = 'test_user'
    id = Column(Integer, primary_key = True)
    name = Column(String, default="")
    score = Column(Integer, default=0)
In [12]:
import sqlalchemy
for module in sqlalchemy, sqlalchemy.orm:
    print(module.__all__)
    for key in module.__all__:
        print(key)
['ARRAY', 'BIGINT', 'BINARY', 'BLANK_SCHEMA', 'BLOB', 'BOOLEAN', 'BigInteger', 'Binary', 'Boolean', 'CHAR', 'CLOB', 'CheckConstraint', 'Column', 'ColumnDefault', 'Computed', 'Constraint', 'DATE', 'DATETIME', 'DDL', 'DECIMAL', 'Date', 'DateTime', 'DefaultClause', 'Enum', 'FLOAT', 'FetchedValue', 'Float', 'ForeignKey', 'ForeignKeyConstraint', 'INT', 'INTEGER', 'Index', 'Integer', 'Interval', 'JSON', 'LargeBinary', 'MetaData', 'NCHAR', 'NUMERIC', 'NVARCHAR', 'Numeric', 'PassiveDefault', 'PickleType', 'PrimaryKeyConstraint', 'REAL', 'SMALLINT', 'Sequence', 'SmallInteger', 'String', 'TEXT', 'TIME', 'TIMESTAMP', 'Table', 'Text', 'ThreadLocalMetaData', 'Time', 'TypeDecorator', 'Unicode', 'UnicodeText', 'UniqueConstraint', 'VARBINARY', 'VARCHAR', 'alias', 'all_', 'and_', 'any_', 'asc', 'between', 'bindparam', 'case', 'cast', 'collate', 'column', 'create_engine', 'delete', 'desc', 'distinct', 'engine_from_config', 'except_', 'except_all', 'exists', 'extract', 'false', 'func', 'funcfilter', 'insert', 'inspect', 'intersect', 'intersect_all', 'join', 'lateral', 'literal', 'literal_column', 'modifier', 'not_', 'null', 'nullsfirst', 'nullslast', 'or_', 'outerjoin', 'outparam', 'over', 'select', 'subquery', 'table', 'tablesample', 'text', 'true', 'tuple_', 'type_coerce', 'union', 'union_all', 'update', 'within_group']
ARRAY
BIGINT
BINARY
BLANK_SCHEMA
BLOB
BOOLEAN
BigInteger
Binary
Boolean
CHAR
CLOB
CheckConstraint
Column
ColumnDefault
Computed
Constraint
DATE
DATETIME
DDL
DECIMAL
Date
DateTime
DefaultClause
Enum
FLOAT
FetchedValue
Float
ForeignKey
ForeignKeyConstraint
INT
INTEGER
Index
Integer
Interval
JSON
LargeBinary
MetaData
NCHAR
NUMERIC
NVARCHAR
Numeric
PassiveDefault
PickleType
PrimaryKeyConstraint
REAL
SMALLINT
Sequence
SmallInteger
String
TEXT
TIME
TIMESTAMP
Table
Text
ThreadLocalMetaData
Time
TypeDecorator
Unicode
UnicodeText
UniqueConstraint
VARBINARY
VARCHAR
alias
all_
and_
any_
asc
between
bindparam
case
cast
collate
column
create_engine
delete
desc
distinct
engine_from_config
except_
except_all
exists
extract
false
func
funcfilter
insert
inspect
intersect
intersect_all
join
lateral
literal
literal_column
modifier
not_
null
nullsfirst
nullslast
or_
outerjoin
outparam
over
select
subquery
table
tablesample
text
true
tuple_
type_coerce
union
union_all
update
within_group
['AliasOption', 'AttributeExtension', 'Bundle', 'ColumnProperty', 'ComparableProperty', 'CompositeProperty', 'EXT_CONTINUE', 'EXT_SKIP', 'EXT_STOP', 'Load', 'Mapper', 'MapperExtension', 'PropComparator', 'Query', 'RelationshipProperty', 'Session', 'SessionExtension', 'SynonymProperty', 'aliased', 'backref', 'class_mapper', 'clear_mappers', 'close_all_sessions', 'column_property', 'comparable_property', 'compile_mappers', 'composite', 'configure_mappers', 'contains_alias', 'contains_eager', 'create_session', 'defaultload', 'defer', 'deferred', 'dynamic_loader', 'eagerload', 'eagerload_all', 'foreign', 'immediateload', 'join', 'joinedload', 'joinedload_all', 'lazyload', 'lazyload_all', 'load_only', 'make_transient', 'make_transient_to_detached', 'mapper', 'noload', 'object_mapper', 'object_session', 'outerjoin', 'polymorphic_union', 'public_factory', 'query_expression', 'raiseload', 'reconstructor', 'relation', 'relationship', 'remote', 'scoped_session', 'selectin_polymorphic', 'selectinload', 'selectinload_all', 'sessionmaker', 'subqueryload', 'subqueryload_all', 'synonym', 'undefer', 'undefer_group', 'validates', 'was_deleted', 'with_expression', 'with_parent', 'with_polymorphic']
AliasOption
AttributeExtension
Bundle
ColumnProperty
ComparableProperty
CompositeProperty
EXT_CONTINUE
EXT_SKIP
EXT_STOP
Load
Mapper
MapperExtension
PropComparator
Query
RelationshipProperty
Session
SessionExtension
SynonymProperty
aliased
backref
class_mapper
clear_mappers
close_all_sessions
column_property
comparable_property
compile_mappers
composite
configure_mappers
contains_alias
contains_eager
create_session
defaultload
defer
deferred
dynamic_loader
eagerload
eagerload_all
foreign
immediateload
join
joinedload
joinedload_all
lazyload
lazyload_all
load_only
make_transient
make_transient_to_detached
mapper
noload
object_mapper
object_session
outerjoin
polymorphic_union
public_factory
query_expression
raiseload
reconstructor
relation
relationship
remote
scoped_session
selectin_polymorphic
selectinload
selectinload_all
sessionmaker
subqueryload
subqueryload_all
synonym
undefer
undefer_group
validates
was_deleted
with_expression
with_parent
with_polymorphic
In [ ]: