从setup.py创建数据库和表

tre*_*rex 5 python mysql setup-deployment setup.py

我正在尝试setup.py第一次写作。安装工作正常,但无法通过脚本创建数据库和表。这是我的文件:

import os
import sys
from distutils.sysconfig import get_python_lib

from setuptools import find_packages, setup

# Dynamically calculate the version based on django.VERSION.
version = __import__('flask').__version__

setup(
  name='myapp_manager',
  version='1.0.0',
  description='myapp manger',
  long_description=('myapp manger description'),
  url='https://github.com/XXXXXXXXXX.git',
  packages=find_packages(exclude=['tests*']),
  install_requires=["Flask==0.10.1",
  "Flask-SQLAlchemy==1.0",
  "Jinja2==2.8",
  ...    
  ],
  include_package_data=True,
  entry_points = {
  'console_scripts': [
    'create_db = myapp_manager.scripts.create_db:main',
    ]
  },
  package_data={
    'static': 'static/*',
    'templates': 'templates/*'},
  classifiers=[
    "Private :: Do Not Upload"
  ],
)
Run Code Online (Sandbox Code Playgroud)

这是我的项目目录结构:

myapp_manager
|-- app
|   |-- api_calls.py
|   |-- api_templates.py
|   |-- __init__.py
|   |-- logger.py
|   `-- loginapp
|      |-- controller.py
|      `-- __init__.py
|-- run.py
|-- scripts
|   |-- create_db.py
|   `-- __init__.py
|-- settings.py
`-- setup.py
Run Code Online (Sandbox Code Playgroud)

这是create_db.py(独立运行时运行,不会出错)

import MySQLdb
def main():
    db1 = MySQLdb.connect(host="localhost", user="root",passwd="passwordstr")
    cursor = db1.cursor()
    sql = 'CREATE DATABASE myappdb;'
    cursor.execute(sql)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

我不确定是否要在create_db.py中运行,但是当我运行时,我会看到以下行: Installing create_db script to /usr/local/bin

在Mysql中:

mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| xapp_db            |
| mysql              |
| performance_schema |
+--------------------+
Run Code Online (Sandbox Code Playgroud)