python command line 包_python包初始化数据库

我使用以下说明创建包:

mypackage/bin

mypackage/bin/initialize_sqlite.sh

mypackage/mypackage/__init__.py

mypackage/mypackage/a_bunch_of_python.py

mypackage/mypackage/tests/__init__.py

mypackage/mypackage/tests/test_setup.py

mypackage/mypackage/maketables.sql

mypackage/setup.py

在哪里?

initialize_sqlite.sh

#!/usr/bin/env bash

sqlite3 my.db < ../mypackage/maketables.sql # creates a Users table

setup.py是

from setuptools import setup

setup(name='mypackage,

packages=['mypackage'],

scripts=['bin/initialize_sqlite.sh'],

install_requires=[

'pysqlite3'

],

test_suite='nose.collector',

tests_require=['nose'],

zip_safe=False)

from pathlib import Path

import mypackage

def get_project_root():

"""Returns project root folder.

"""

return Path(mypackage.__file__).parent.absolute()

ROOT = get_project_root()

DBFILE = str(ROOT.joinpath('my.db'))

我的mypackage/mypackage/tests/test_setup.py是:

from unittest import TestCase

import mypackage

from mypackage import utils

from pysqlite3 import dbapi2 as sqlite3

class TestSqlAccess(TestCase):

def test_sql_access(self):

conn = sqlite3.connect(utils.DBFILE)

db = conn.cursor()

s = db.execute("PRAGMA database_list").fetchall()

self.assertNotEqual(s, [])

s2 = db.execute("SELECT 1 from Users LIMIT 1").fetchall()

./bin/initialize_sqlite.sh

它很好地创造了

mypackage/my.db

如我所料。

pip install ./mypackage

当我看到:

ll /home/user/anaconda3/envs/myenv/lib/python3.6/site-packages/mypackage/my.db

它是空的,大小为0。

ERROR: test_sql_access (mypackage.tests.test_setup.TestSqlAccess)

----------------------------------------------------------------------

Traceback (most recent call last):

File "/home/user/.../tests/test_setup.py", line 14, in test_sql_access

s2 = db.execute("SELECT 1 from Users LIMIT 1").fetchall()

pysqlite3.dbapi2.OperationalError: no such table: Users

我的安装箱或路径有什么问题?是不是找不到maketables.sql而没有悄悄地告诉我(所以它有效地找到了sqlite3 my.db

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值