我试图遵循与SQLAlchemy相关的this previous question中显示的设计模式,并打算在多个文件中共享一个公共的基本实例。代码完全可以在python2和python3上运行。在

但是,当我移动文件a.py、b.py、c.py和基准.py在一个模块(称为model)中,添加必要的uinit_uy.py文件,它继续在python2上工作,但随后在python3上生成一个错误(详细信息如下)。在

我有以下文件:

型号/基准.py在from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

型号/a.py

^{pr2}$

型号/b.pyfrom sqlalchemy import *

from base import Base

class B(Base):

__tablename__ = "B"

id = Column(Integer, primary_key=True)

A_id = Column(Integer, ForeignKey("A.id"))

型号/c.pyfrom sqlalchemy import *

from base import Base

class C(Base):

__tablename__ = "C"

id = Column(Integer, primary_key=True)

A_id = Column(Integer, ForeignKey("A.id"))

型号/初始型号

(空的)

在主.py在from sqlalchemy import create_engine

from sqlalchemy.orm import relationship, backref, sessionmaker

from model import base

from model import a

from model import b

from model import c

engine = create_engine("sqlite:///:memory:")

base.Base.metadata.create_all(engine, checkfirst=True)

Session = sessionmaker(bind=engine)

session = Session()

a1 = a.A()

b1 = b.B()

b2 = b.B()

c1 = c.C()

c2 = c.C()

a1.Bs.append(b1)

a1.Bs.append(b2)

a1.Cs.append(c1)

a1.Cs.append(c2)

session.add(a1)

session.commit()

Python2号作品:$ python main.py ; echo $?

0

python3出错:$ python3 main.py ; echo $?

Traceback (most recent call last):

File "main.py", line 7, in

from model import a

File "/home/shale/code/py/try/model/a.py", line 2, in

from base import Base

ImportError: No module named base

1

我最终解决了这个问题基准.py但有人知道为什么这会在python3中产生错误,而在python2中却不会产生错误?首先是什么变化造成的?在

python2 python3 import,从python2到python3的导入处理/模块的更改?相关推荐

  1. Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)

    Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...

  2. python3.x与python2.x的区别汇总

    python3.x与python2.7.x都是比较流行的版本,虽然建议现在的初学者开始学习python3.x的版本,但是还有很多的工程使用的是python2.7.x版本.观看代码的时候难免会出现一些问 ...

  3. Python3.x和Python2.x的区别[转]

    Python3.x和Python2.x的区别 1.性能  Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 ...

  4. python3.x和python2.x唯一区别_Python3.x和Python2.x的区别介绍

    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...

  5. python3 x和python2 x区别_Python3.x和Python2.x的区别(转存参考)

    这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和 ...

  6. python3代码兼容python2

    python3代码兼容python2的方式 1.使用future特性 Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动.有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码 ...

  7. linux python2和python3共存_linux-Centos7安装python3并与python2共存

    1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用 python -V 命令查看一下是否安 ...

  8. anaconda与python的idle冲突吗_anaconda(python3)与python2共存

    网上类似教程许多,具体参照了以下博客和链接. 总结了一下大概步骤分为:1.检查是否加入到环境变量之中 2.给python改名便于区分 3.更新pip(python因为改名了) 4.右键菜单中添加IDL ...

  9. python mkl freebsd_FreeBSD:在uwsgi中使用python3而不是python2

    我有一台安装了FreeBSD 10.1的服务器.我想使用uwsgi nginx python3在其上部署一个Django站点并遇到一些问题. 该网站是为python3编写的,我安装了python3.4 ...

最新文章

  1. tensorflow 1
  2. mysql从入门到精通之数据库安装图解
  3. 利用gcc的-finstrument-functions获取函数轨迹跟踪
  4. 专访 TensorFlow 贡献者唐源:掌握 Google 深度学习框架的正确姿势
  5. LeetCode-206 反转链表
  6. java环境变量怎么配置,详解系列文章
  7. 深度学习在美团推荐平台排序中的运用
  8. Git如何进行分支合并
  9. linux下和htm的运行,嵌入式LINUX下CGI与HTML网页之间的通信
  10. SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名转...
  11. iOS开发之算法加密md5,sha1,AES,base64
  12. 自定义Mac睡眠时间,保持运行状态
  13. js 正则 exec() 和 match() 数据抽取
  14. 【笔记】android应用签名
  15. 【FinalShell】win10 / win 11:远程连接 Linux 工具 FinalShell 下载、安装
  16. 网工浓缩笔记以及考点(第七章 网络安全)
  17. redmine backlogs的tracker使用
  18. [JZOJ4949]仙人球
  19. 基于Spring Boot的农家乐点餐系统
  20. 阿里云1核1G内存1M宽带可以支持多少IP访问量?

热门文章

  1. mysql表变量临时表_sql server 临时表详细讲解及简单示例
  2. 关于微信小程序使用wx.downloadFile和wx.getFileSystemManager().saveFile()保存文件在本机找不到文件的说明
  3. springfox源码_Spring boot整合Springfox在线生成restful的api doc
  4. python爬虫天气数据_python爬虫:天气数据的分析
  5. python写日志文件_Python logging日志模块 配置文件方式
  6. 最详细的linux下的磁盘分区及格式化
  7. Android开发之listview添加头布局(header)和脚布局(footer)的方法
  8. java中怎么表示数组中的某个值_简易Java(12):如何高效检查一个数组中是否包含某个值?...
  9. iOS应用内购买(In App Purchase)总结
  10. linux7.0ftp,Linux(Centos7)搭建FTP服务