Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python3.4和Python2.7中导入模块的区别

Python3.4和Python2.7中导入模块的区别
EN

Stack Overflow用户
提问于 2015-09-18 09:45:01
回答 2查看 2.6K关注 0票数 2

我正在尝试导入另一个文件夹中的包,它在python3.4中运行得非常好。例如:文件存在于库文件夹中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user> python
Python 3.4.1 (default, Nov 12 2014, 13:34:29)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from libraries.controller_utils import *
>>>      

但是,当我打开一个新的shell并使用Python2.7时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user> python
Python 2.7.4 (default, Jun  1 2015, 10:35:58)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-55)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from libraries.controller_utils import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named libraries.controller_utils
>>>

我尝试将条目添加到sys.path中,但这并没有帮助。我读了一个类似的问题这里,但解决方案也没有帮助我,因为我尝试了相对和绝对导入。请指点。

编辑:目录结构为~/tests/libraries/controller_utils.py。我正在测试目录中执行这些命令。

编辑:我添加了sys.path条目,如下所示,但它仍然不识别它。请注意,该错误发生在2.7,但在3.4上工作非常好

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user> cd ~/tests/
user> ls
__pycache__  backups  inputs  libraries  openflow.py  test_flow.py
user> ls libraries/
__pycache__  controller_utils.py  general_utils.py  general_utils.pyc  tc_name_list.py  test_case_utils.py
user> python
Python 2.7.4 (default, Jun  1 2015, 10:35:58)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-55)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from libraries.controller_utils import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named libraries.controller_utils
>>> import sys
>>> sys.path.append('libraries/')
>>> from libraries.controller_utils import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named libraries.controller_utils
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-18 10:09:08

您的libraries包缺少__init__.py文件。您可以使用该名称创建一个空文件,然后:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from libraries.controller_utils import *

应该行得通。

或者,如果不想将libraries转换为包,则应该将其路径添加到sys.path并导入controller_utils

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys

sys.path.append('libraries/')
from controller_utils import *

请注意,错误是由于python2要求__init__.py从包中导入,而python3.3+提供命名空间包 (参见PEP420)。这就是为什么在python3.4中导入不会失败的原因。

如果希望代码以同样的方式在python2和python3中工作,则应该始终将__init__.py文件添加到包中,并在文件中使用from __future__ import absolute_import

票数 6
EN

Stack Overflow用户

发布于 2015-09-18 09:56:46

佩普0404

在Python 3中,包中的隐式相对导入不再可用--只支持绝对导入和显式相对导入。此外,star导入(例如从x import *)仅允许在模块级代码中进行。

如果libraries位于同一目录中,这将避免与安装在系统级别的包发生冲突。这将是一个隐含的相对进口。

您应该能够使用..导航到模块的正确位置,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ..libraries.controller_utils import *
# or, depending of you directory structure
# put as many dots as directories you need to get out of
from ....common.libraries.controller_utils import *

但你的案子似乎和明星的进口有关。在Python3中,只能在文件的顶层使用星型导入( star,from x import *),即不能在函数或类定义中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32658058

复制
相关文章
公众号帖子如何查询
自公众号更新以来,大大小小已经更新了差不多130篇文章了。经常会在公众号的后台收到类似:GEPIA;UCSC XENA的回复。可能这些小朋友是想通过回复来看有没有这些数据库的帖子。但是我们在后台没有设置这些关键词回复的时候,是没办法直接出来帖子的。为此。我们特意来写一篇如何检测相关文章的帖子
医学数据库百科
2021/08/23
1.2K0
公众号帖子如何查询
Reddit 如何实现大规模的帖子浏览计数
本文介绍了Reddit如何实现大规模浏览计数系统,该系统使用基于HyperLogLog的算法来估计用户的浏览量。首先介绍了HyperLogLog算法,然后描述了Reddit是如何利用Redis和Cassandra来实现这个系统的。
企鹅号小编
2018/01/08
1.3K0
Reddit 如何实现大规模的帖子浏览计数
帖子中心,1亿数据,架构如何设计?
帖子中心,是互联网业务中,一类典型的“1对多”业务,即:一个用户能发布多个帖子,一个帖子只有一个发布者。
架构师之路
2020/07/30
1.4K0
帖子中心,1亿数据,架构如何设计?
如何给帖子添加板块角标,Ta来了!
因为我首页是没有板块的,这样的话帖子是什么板块的不点进帖子内就不好分辨。我是站在实用的角度出发,顺便做的好看一些,不是为了花里胡哨所谓的美化。所以不要问我这个怎么美化那个怎么美化,我不会因为我不美化。
用户1287596
2024/10/10
1160
如何屏蔽 Emacs China 论坛指定用户的帖子
Emacs China 作为国内少数中文优质论坛,混的时间久了难免会对某些用户的帖子有些反感,虽然论坛自身有屏蔽的功能[1],但仅仅是把内容用「ignored content」来替代,帖子本身还在,没法直接把帖子直接隐藏掉,因此写了个油猴脚本来做这件事。
飞驰的西瓜
2022/07/26
8880
如何制作 GitHub 个人主页
人们在网上首先发现你的地方是哪里?也许你的社交媒体是人们搜索你时首先发现的东西,亦也许是你为自己创建的投资组合网站。然而,如果你使用GitHub来分享你的代码并参与开源项目,那么你的GitHub个人主页可能是人们为了了解你而去的第一个地方。
chuckQu
2023/09/01
3390
如何制作 GitHub 个人主页
从京东主页里寻找技术的真相
刚刚经过“618购物节”的挑战,京东(此文简称JD)首次向大众公布了618的交易额,那就是1199亿元。什么?才1199亿,阿里系小伙伴肯定在后面偷笑,搞了18天的大促,还不如淘宝“双11”一天的销售额。不过没关系,这次强东哥非常满意,因为“618”这个日子,这个让全国网民们沸腾的节日,已经被京东写进历史,这足以证明强东哥这一年的强势回归是有多么重要。
石瞳禅
2018/09/18
1.3K0
从京东主页里寻找技术的真相
woocommerce如何隐藏SKU
  有时我们不想在woocommerce网站前台显示SKU,如下图所示,因为sku一多整个排版可能会乱,那么要如何隐藏sku呢?随ytkah一起来看看
ytkah
2019/12/20
2.2K0
woocommerce如何隐藏SKU
mac如何删除隐藏文件_如何显示系统隐藏文件
U盘和移动硬盘接入Mac时会产生.Trashes,.Spotlight-V100,.fseventsd等文件
全栈程序员站长
2022/09/20
3.6K0
揭秘-社交帖子新趋势
人类的社交开始于面对面的沟通,后来人们通过写信联络远距离的家人朋友,这就是最好理解的实时互动与异步互动。简单来说,“写信”对比“当面聊天”来说多了一个“等待的时间”,面对面的聊天更加“即时”,二者最本质的差异在于互动与互动间的“时间差”。
腾讯ISUX
2023/08/03
3990
揭秘-社交帖子新趋势
IE浏览器主页被劫持,如何解决主页被篡改问题?
前几天号主的电脑的指纹解锁功能突然不能用了,号主以为是驱动没更新到最新版导致的,去官网下载最新的驱动都安装上了也是不行,后面找Dell客服两个小时也没有找到最终的问题,后面个人怀疑是因为号主研究虚拟化技术导致一些冲突从而指纹识别不能用了,最后一不做二不休直接重置了系统后就恢复了【建议大家把桌面文件属性修改为存到别的盘符,这样就算你重置了系统,桌面的资料都不会丢失。
FreeRonin
2020/09/23
19.9K0
IE浏览器主页被劫持,如何解决主页被篡改问题?
如何使用 Redis 实现大规模的帖子浏览计数
满足上面四个条件,其实比想象中要复杂。为了在实时统计的情况下保持精准度,我们需要知道某一个用户之前是否浏览过一篇文章,所以我们需要为每一篇文章存储浏览过它的用户的集合,并且在每次新增浏览时检查该集合进行去重复操作。
芋道源码
2018/12/29
2.1K0
如何使用 Redis 实现大规模的帖子浏览计数
如何隐藏tableHeaderView或tableFooterView
在项目中,因为同一页面结构体不同,头部是相同的结构,用了两个不同的tableView,头部是统一的view,但是发现tableView.tableHeaderView=_headerView只赋值一次,不支持来回赋值,打印出 NSLog(@"%@",_headerView.superview)仍然是上一个tableview视图。
honey缘木鱼
2019/11/04
1.1K0
怎么找出电脑隐藏的软件(如何清理电脑隐藏软件)
最近,有很多小伙伴想跟我学渗透。平时时间确实太忙了,除了要研发公司项目外,写公号,写博客,录视频,写书稿,维护开源项目,几乎占据了我全部的业余时间。目前确实没有太多的时间教大家,今天,就暂时给大家分享一个小技巧吧,如何彻底隐藏电脑中的“视频”,让你的女朋友再也不能发现你电脑中的小秘密!
全栈程序员站长
2022/08/01
4.6K0
怎么找出电脑隐藏的软件(如何清理电脑隐藏软件)
如何给自己的Github主页来个豪华套餐?
仓库信息 “豪华装修”案例分享 技术大佬型🤖:展示自己的技术栈、开源项目、最近文章 地址:https://github.com/thmsgbrt/thmsgbrt 代码模式👨🏽‍💻:展示自己最近的code内容,code语言和开发时间。 地址:https://github.com/guilyx/guilyx 极简主义✨ 地址:https://github.com/Volcano-Yang/Volcano-Yang 地址:
唐志远
2022/10/27
4480
如何给自己的Github主页来个豪华套餐?
Chome 88如何正确隐藏 webdriver?
在文章最完美方案!模拟浏览器如何正确隐藏特征中,我们提到了使用 CDP 协议执行stealth.min.js文件,从而完美隐藏 Chrome 浏览器的各个特征。
青南
2021/02/02
1.6K0
Chome 88如何正确隐藏 webdriver?
问题帖子--Concurrent Read/Write Map
DK1.5 引入了 concurrent package, 提供了更多的concurrent 控制方法。 还提供了一个 ConcurrentHashMap 类。从API上看,是可以读写同步。多个thread可以同时读取,一个thread写的时候,其他thread都不能读写。 这是一个用处很广、很方便的类。我想,能不能在 jdk1.4 及以下版本也提供一个。于是查看了 ConcurrentHashMap的代码。 我本以为,实现思路应该是用到了 ReadWriteLock. 大致是这样的思路。 Jav
李海彬
2018/03/23
6300
问题帖子--Concurrent Read/Write Map
DK1.5 引入了 concurrent package, 提供了更多的concurrent 控制方法。 还提供了一个 ConcurrentHashMap 类。从API上看,是可以读写同步。多个thread可以同时读取,一个thread写的时候,其他thread都不能读写。 这是一个用处很广、很方便的类。我想,能不能在 jdk1.4 及以下版本也提供一个。于是查看了 ConcurrentHashMap的代码。 我本以为,实现思路应该是用到了 ReadWriteLock. 大致是这样的思路。 Jav
李海彬
2018/03/23
8410
miniblink 的bug收集帖子
应广大网友的热情反馈,只好提前把miniblink 0.0.1 版放出来,果然一堆小问题。 特此开个贴子收集下bug,以及解决情况 1、http://www.zi-han.net/theme/hplus/  网站js为GZIP格式,没有支持。(http://bbs.csdn.net/topics/360104816) 2、滚轮不太灵活。可能是WebLayerImpl::setScrollPositionDouble 收到的太慢。(已解决。设置webWheelEvent.hasPreciseScrolling
龙泉寺扫地僧
2018/06/21
1.3K0
如何使用 Python 隐藏 API 密钥
博客首发:https://bornforthis.cn/posts/19.html
AI悦创
2022/06/21
2.2K0
如何使用 Python 隐藏 API 密钥

相似问题

[:]和[]在python中有什么区别?

10

<>和!=在python中有什么区别吗?

11

with和if在Python2中有什么区别?

28

stdin和sys.argv在python中有什么区别?

10

{%和{%-在小枝中有什么区别?

19
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文