charset=utf8 (4)将models所在的目录路径添加到env.py,并指定target_metadata import sys,os # 1. -m "第一次提交" (6)将生成的迁移脚本映射到数据库中 alembic upgrade head 以后如果想要添加或修改模型,重复5,6步骤即可 1.2.alembic常用命令和经典错误解决办法 :将指定版本的迁移文件映射到数据库中,会执行版本文件中的upgrade函数 head:代表当前的迁移脚本的版本号 downgrade:会执行指定版本的迁移文件中的downgrade函数 heads:展示当前可用的 alembic upgrade head 2.FAILED:Can't locate revision identified by 'xxxxxxx' 原因:数据库中存的版本号不在迁移脚本文件中 解决办法:删除数据的alembic_version表中的数据,重新执行alembic upgrade head 1.3.current命令使用介绍 用alembic工具:数据库中会自动生成一张表
问题描述 今天试着在python3.7.2上安装最新的superset(0.28.1),在初始化数据库的时候报如下错误: $ superset db upgrade ... /script/[base.py](base.py)", line 475, in run_env util.load_python_file(self.dir, "[env.py](env.py)" ) File "/home/jhadmin/.pyenv/versions/3.7.2/envs/myenv-3.7.2/lib/python3.7/site-packages/alembic/util /envs/myenv-3.7.2/lib/python3.7/site-packages/superset/migrations/[env.py](env.py)", line 93, in run_migrations_online 问题原因 这是 SQLAlchemy 库版本太高导致的,需要安装低版本的 SQLAlchemy 库。
代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!
生成的迁移脚本目录如下: ├── alembic │ ├── README │ ├── env.py │ ├── script.py.mako │ └── versions alembic env.py 文件:一个 python 文件,在调用 Alembic 命令时该脚本文件运行。 script.py.mako 文件:是一个 mako 模板文件,用于生成新的迁移脚本文件。 done 此时在 alembic 文件夹中可以看到以下文件: alembic├── README ├── env.py ├── script.py.mako └── versions ├ 自动生成迁移脚本无需考虑数据库相关操作,只需完成 ROM 中相关类的编写即可,通过 Alembic 命令即可在数据库中自动完成数据表的生成和更新。 在使用自动生成命令之前,需要在 env.py 文件中修改 target_metadata 配置使其指向应用程序中的元数据对象。
其中一个非常重要的依赖库是 Alembic ,数据库迁移时自动生成迁移文件和迁移脚本都是 Alembic 完成的,也是因为 Alembic 的机制,数据库迁移操作只能在 Linux 系统中使用,不能在 env.py 是迁移环境的相关信息。 ? 数据库迁移时,初始化命令只需要执行一次,如果在一开始发现执行有问题,需要重新初始化,要先删除 migrations 目录才行。 执行 upgrade 命令后,会在数据库中创建一张 alembic_version 表,这张表不是代码中定义的,是 Alembic 自动创建的(看名字就知道了),里面保存的是当前数据库的版本 id ,alembic_version 前面提到,在 Linux 系统中可以顺利执行数据库迁移,在 Windows 中会失败,是因为 Alembic 生成迁移脚本的机制,现在就简单解释一下原因。 如果要在 Windows 中成功执行数据库迁移,就不能直接使用 Alembic 生成的迁移脚本,需要自己修改迁移脚本。
alembic的方式类似git,表现在: alembic所有的命令都以alembic开头; alembic的迁移文件也是通过版本进行控制的 安装 pip install alembic 使用alembic 在alembic/env.py中的target_metadata设置模型的Base.metadata。但是要导入models,需要将models所在的路径添加到这个文件中。 将生成的脚本映射到数据库中:alembic upgrade head。 以后如果修改了模型,重复4、5步骤。 注意事项:在终端中,如果想要使用alembic,则需要首先进入到安装了alembic的虚拟环境中,不然就找不到这个命令。 常用命令: init:创建一个alembic仓库。 (先把upgrade方法内容改成pass,然后再改回来) 49. flask-sqlalchemy中配置alembic 创建flask项目,创建好模型 alembic init alembic 修改配置文件
arm2-1.png 做一个 Viewer 其实 env.py 光有一个 ArmEnv 的 class 是不够的, 这个 ArmEnv 和可视化的部分分开来处理会更好管理你的代码. 所以, 我在 env.py 中, 除了 ArmEnv, 我还加入了一个叫 Viewer 的 class 来单独处理可视化的部分. render 功能 找好了这个调用可视化的时机, 我们就能安心在 Viewer 中开始画手臂的样子了. 画手臂的时候我们要用到 pyglet 模块当中的一些内容, 想提前了解 pyglet 的使用方法的朋友, 可以戳这里. # env.py class Viewer(pyglet.window.Window 而 render() 是我们在 env.render() 中调用的功能.
在进行alembic的初始化init时,要在虚拟环境中进行。以前都是用的pycharm给的虚拟环境,这次还是新建一个自己的。 2、pip3 install virtualenvwrapper-win -i https://pypi.douban.com/simple 3、创建虚拟环境:默认在系统盘用户下的Envs里 mkvirtualenv 4、切换到自己的虚拟环境: workon 虚拟环境名 ? 5、更改pycharm中的虚拟环境为自己创建的: ? 6、切换到自己的flask项目目录下,执行: alembic init alembic ? 成功新增了: ? 以上就是本文的全部内容,希望对大家的学习有所帮助。
之前我们在强化学习系列教程中学习到了很多强化学习的知识, 了解了各种算法应该怎样运用, 从最简单的 Q-Learning到结合神经网络的 DQN, 再到做连续动作的 DDPG 以及分布式训练的 A3C 这也是我在自己强化学习系列教程中一直给大家呈现的方式。 具体来说, 这三方面的脚本可以是这样: 环境脚本 (env.py) 强化学习脚本 (rl.py) 主循环脚本 (main.py) 我们在主循环脚本中将会 import 环境和强化学习方法, 所以主循环脚本将上面两者给串联了起来 如果你看到这次教学的 代码, 你会发现我将每一步分别打包, part1, part2… 中都有上述三个脚本文件。我们将在每个 part 中一一添加必要的部分。 所以你可以另外创建一个 env.py 的脚本, 先写好下面这个 ArmEnv 的 class。 然后给他加上上面提到的功能。
但随着应用的不断增长,很可能会新增、修改或删除数据库结构。Alembic(Flask-Migrate使用的迁移框架)将以一种不需要重新创建数据库的方式进行数据库结构的变更。 这是一个看起来相当艰巨的任务,为了实现它,Alembic维护一个数据库迁移存储库,它是一个存储迁移脚本的目录。每当对数据库结构进行更改后,都需要向存储库中添加一个包含更改的详细信息的迁移脚本。 home/miguel/microblog/migrations/alembic.ini ... done Generating /home/miguel/microblog/migrations/env.py 要自动生成迁移,Alembic会将数据库模型定义的数据库模式与数据库中当前使用的实际数据库模式进行比较。然后,使用必要的更改来填充迁移脚本,以使数据库模式与应用程序模型匹配。 Alembic通过使用降级方法可以将数据库迁移到历史中的任何点,甚至迁移到较旧的版本。 flask db migrate命令不会对数据库进行任何更改,只会生成迁移脚本。
项目简介 本文是关于安装和配置直接从数据库中直接呈现的超酷和令人钦佩的D3图表,而无需任何特殊的API。这些工具名为 SuperSet,它来自Airbnb的团队。 本文分为两部分。 将以下行添加到bash_profile中 别名PIP = 'PIP3'别名蟒= 'python3' 让我们确保Python setuptools 和pip是最新的,这让Python知道它的模块定义。 pip uninstall -r req.txt -y 安装最新版本的SuperSet /如果您在代理后面,请打开安装中最难部分中列出的代理。 如果要删除所有用户,请从以下目录中删除db文件: /Users/<USER>/.superset 初始化数据库: $ superset db升级 ...... INFO [ alembic。 确保端口8125未被任何其他应用程序使用或使用您自己的端口,如以下命令中所列。 $ gunicorn -b 0 .0.0.0:8125 superset:app
https://github.com/pjialin/py12306 cd py12306 && pip install -r requirements.txt cp env.py.example env.py 修改配置 上面得到的 env.py 包含了程序所有的配置,有非常好的注释,跟着修改即可。 # 打开 env.py,查找这两个参数,把值替换成第二步里的RAIL_EXPIRATION 和RAIL_DEVICEID的值,重启刷票脚本即可 愉快的登录刷票了。 CACHE_RAIL_ID_ENABLED = 1 RAIL_EXPIRATION = 'xxx' #浏览12306 网站中的Cache的RAIL_EXPIRATION 值 RAIL_DEVICEID = 'xxx' #浏览12306 网站中的Cache的RAIL_DEVICEID 值 最后,如果有其他问题和需求请查看项目主页:https://github.com/pjialin/py12306[1
配置程序 cp env.py.example env.py 上面是linux的,如果是windows需要把cp换成copy 上述执行后,产生env.py配置文件,具体内容在配置文件里面查看。 自动打码 目前支持免费打码,和若快打码 注:免费打码无法保证持续可用,如失效请手动切换到若快平台,需要先到 http://www.ruokuai.com 注册一个账号后填写到配置中 语音通知 语音验证码使用的是阿里云 API 市场上的一个服务商,需要到 https://market.aliyun.com/products/56928004/cmapi026600.html购买后将 appcode 填写到配置中 3. 单台主节点多个子节点同时运行 主节点宕机后自动切换提升子节点为主节点 主节点恢复后自动恢复为真实主节点 配置通过主节点同步到所有子节点 主节点配置修改后无需重启子节点,支持自动更新 子节点消息实时同步到主节点 使用 将配置文件的中 , tail -f 12306.log Web 管理页面 目前支持用户和任务以及实时日志查看,更多功能后续会不断加入 使用 打开 Web 功能需要将配置中的 WEB_ENABLE 打开,启动程序后访问当前主机地址
if __name__ == '__main__': app.run() 1.2.flask-migrate的使用 flask-migrate是基于alembic进行的一个封装,并集成到flask 中,而所有的迁移操作其实都是alembic做的,它能跟踪模块的变化,并将变化映射到数据库中。
Flask-Migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。 , primary_key=True) name = db.Column(db.String(128)) 上述代码指定数据库为lrh.db,如果不存在将新建;我们建立了User模型,指定它对应的在数据库中的名字为 数据库需要指定,此代码也没有新建数据库app.db,如果URI中指定的数据库原先不存在,则没有app.db这个数据库存在。 这个命令将会新建一个名字为migrations的文件夹,并且记录一个数据库版本号,一份保留在migrations中,一份保存在数据库中(新建一张名字为alembic_version的表来保存),值得注意大是新建了 迁移 flask db migrate 迁移脚本最好仔细审查并且按需编写,因为Alembic(flask-migrate的核心)不会检测模型所有大变化,可以参考这个链接,查看Alembic的限制。
作为从零开始的Web开发人员,在项目开发中总是遇到这样那样的坑,其中数据库的坑最多。由于在功能完善过程中需要变换频繁,不可避免地要更改DB Schema,不过我都是能不改尽量不改。 故事是这样的,我要把两个表中的某两列的类型由字符型改成列表。在数据库值类型中就是BLOB,ORM中叫做PickleType。 数据库使用SQLite,ORM使用SQLAlchemy,并使用基于Alembic的自动化迁移工具,于是就开始了。 Round 1 直接开搞 migrate。。。咦?怎么脚本没生成? Google之,Alembic不能探测类型变化。 OK,我手动写个好了吧,upgrade。。。报错!ALTER TABLE 不支持改变类型。 Round 3 看来只能放弃自动化迁移了,Google一番,找到一个drop column的workaround:复制一个去掉该列的新表,并覆盖原表。
named flask_sqlalchemy unable to load app 0 (mountpoint='') (callable not found or import error) 但是项目的是有 SQLAlchemy环境的,执行pip list alembic (1.0.0) asn1crypto (0.24.0) blueprint (3.4.2) cffi (1.11.5) click (6.7 我找到启动 uwsgi·的日志,其中有一行是: Python version: 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 ( Red Hat 4.8.5-28)] Python版本和我环境的版本完全不一样啊,根据这条线索发现是自己将uwsgi设置为系统服务的时所写的uwsgi文件为python2.7安装的。
============= 介绍 Awesome-Flask 是由 humiaozuzu 发起和维护的 Flask 资源列表。 该列表收集了许多 Python Flask 相关的优秀资源,方便了 Flask 用户参考查阅。 Python Flask 优秀资源大全中文版 则是依据 Awesome-Flask 翻译而来。 数据库迁移 Flask-Migrate - SQLAlchemy database migrations for Flask applications using Alembic Flask-Alembic - A Flask Extension to provide Alembic integration with Flask 会话 Flask-Session - Session extension
Emoji简介 日语 : 絵文字/えもじ emoji,是日本在无线通信中所使用的视觉情感符号,绘指图画,文字指的则是字符,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等. emoji 频繁地出现在我们的聊天记录 、朋友圈、甚至很多时候我们都会用 emoji 代替文字来聊天,既而来传达自己想要表达的一切,作为一名程序员,常用的代码托管平台 GitHub 中也是可以使用 emoji 表情的~ 规范 执行git commit 时使用 emoji 为本次提交打上一个标签, 使得此次 commit 的主要工作得以凸现,也能够使得其在整个提交历史中易于区分与查找,添加了 emoji 表情的提交记录真的能包含很多有用信息,阅读体验非常棒 (施工) :construction: 工作进行中 ? :dizzy:(信心) :dizzy: 添加或更新动画和过渡 :goal_net:(警车) :goal_net: 捕捉错误 :mag:(放大镜) :mag: 改善SEO :alembic:(洗澡) :alembic
首先来说一下两者的区别: import指令做了两件事:1)搜索module,2)绑定到局部变量 内置函数__import__()只做了一件事:搜索module import指令执行过程中是调用 搜索module的过程: 在了解搜索的过程前,先来了解一下内部实现中的几个角色: a)已经搜索过的module会存在于一个module缓存(sys.modules)中。 c)loaders: 依据modulespec 进行加载,生成python中的module module = modulespec.loader.load_module (modulespec.name) 搜索过程如下: 1)如果要搜索的module 的name 在缓存(sys.modules )中,则进行如下操作: 1.1)如果值是None,抛出 ModuleNotFoundError raise ModuleNotFoundError。
tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/ 有些步骤可能有点繁琐或者容易出错,这里整理一下安装步骤和常见的问题解决方法如下 https://github.com/tensorflow/models,将解压后的目录重命名保存到指定目录,下载 解压后是models-master文件夹,重命名为models,然后放到指定目录,比如 在python安装目录的Lib\site-packages下创建tensorflow.pth文件,在其中添加Object Detection API文件路径: D:\TensorFlow\models\ : No module named 'matplotlib' ------直接安装 pip install matplotlib ② ModuleNotFoundError: No module named 'yaml' ------直接安装 pip install yaml提示找不到yaml安装包,换指令pip install pyyaml ③ ModuleNotFoundError
云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。
扫码关注云+社区
领取腾讯云代金券