python2 python3 import,从python2到python3的导入处理/模块的更改?
我试图遵循与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的导入处理/模块的更改?相关推荐
- Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)
Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...
- python3.x与python2.x的区别汇总
python3.x与python2.7.x都是比较流行的版本,虽然建议现在的初学者开始学习python3.x的版本,但是还有很多的工程使用的是python2.7.x版本.观看代码的时候难免会出现一些问 ...
- Python3.x和Python2.x的区别[转]
Python3.x和Python2.x的区别 1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 ...
- python3.x和python2.x唯一区别_Python3.x和Python2.x的区别介绍
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...
- python3 x和python2 x区别_Python3.x和Python2.x的区别(转存参考)
这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和 ...
- python3代码兼容python2
python3代码兼容python2的方式 1.使用future特性 Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动.有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码 ...
- linux python2和python3共存_linux-Centos7安装python3并与python2共存
1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用 python -V 命令查看一下是否安 ...
- anaconda与python的idle冲突吗_anaconda(python3)与python2共存
网上类似教程许多,具体参照了以下博客和链接. 总结了一下大概步骤分为:1.检查是否加入到环境变量之中 2.给python改名便于区分 3.更新pip(python因为改名了) 4.右键菜单中添加IDL ...
- python mkl freebsd_FreeBSD:在uwsgi中使用python3而不是python2
我有一台安装了FreeBSD 10.1的服务器.我想使用uwsgi nginx python3在其上部署一个Django站点并遇到一些问题. 该网站是为python3编写的,我安装了python3.4 ...
最新文章
- tensorflow 1
- mysql从入门到精通之数据库安装图解
- 利用gcc的-finstrument-functions获取函数轨迹跟踪
- 专访 TensorFlow 贡献者唐源:掌握 Google 深度学习框架的正确姿势
- LeetCode-206 反转链表
- java环境变量怎么配置,详解系列文章
- 深度学习在美团推荐平台排序中的运用
- Git如何进行分支合并
- linux下和htm的运行,嵌入式LINUX下CGI与HTML网页之间的通信
- SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名转...
- iOS开发之算法加密md5,sha1,AES,base64
- 自定义Mac睡眠时间,保持运行状态
- js 正则 exec() 和 match() 数据抽取
- 【笔记】android应用签名
- 【FinalShell】win10 / win 11:远程连接 Linux 工具 FinalShell 下载、安装
- 网工浓缩笔记以及考点(第七章 网络安全)
- redmine backlogs的tracker使用
- [JZOJ4949]仙人球
- 基于Spring Boot的农家乐点餐系统
- 阿里云1核1G内存1M宽带可以支持多少IP访问量?
热门文章
- mysql表变量临时表_sql server 临时表详细讲解及简单示例
- 关于微信小程序使用wx.downloadFile和wx.getFileSystemManager().saveFile()保存文件在本机找不到文件的说明
- springfox源码_Spring boot整合Springfox在线生成restful的api doc
- python爬虫天气数据_python爬虫:天气数据的分析
- python写日志文件_Python logging日志模块 配置文件方式
- 最详细的linux下的磁盘分区及格式化
- Android开发之listview添加头布局(header)和脚布局(footer)的方法
- java中怎么表示数组中的某个值_简易Java(12):如何高效检查一个数组中是否包含某个值?...
- iOS应用内购买(In App Purchase)总结
- linux7.0ftp,Linux(Centos7)搭建FTP服务