问题:

最近在学习import的时候,发现不像import xxx,或者from xxx import ooo

这样简单。比如,看下面这个图:

要导入才能在te.py调用pre.tab.py??

直接导入:

import pre_tab
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/laonanhai/shop_store/test/te.py", line 14, in <module>
import pre_tab
ImportError: No module named 'pre_tab'

知识点:

通过看视频,学到了下面两点:

1. os.path.abspath(__file__) 返回当前文件的绝对路径
在te.py文件下:
import os
x = os.path.abspath(__file__)
print(x)
输出:
C:\Python34\python3.exe C:/Users/Administrator/PycharmProjects/laonanhai/shop_store/test/te.py
C:\Users\Administrator\PycharmProjects\laonanhai\shop_store\test\te.py Process finished with exit code 0

2.os.path.dirname()  返回当前文件的上一层路径
在te.py文件下:
x1 = os.path.dirname(os.path.dirname(x))
print(x1)
sys.path.append(x1) print(sys.path

输出:

C:\Python34\python3.exe C:/Users/Administrator/PycharmProjects/laonanhai/shop_store/test/te.py
C:\Users\Administrator\PycharmProjects\laonanhai\shop_store\test\te.py
C:\Users\Administrator\PycharmProjects\laonanhai\shop_store
['C:\\Users\\Administrator\\PycharmProjects\\laonanhai\\shop_store\\test', 'C:\\Python34\\lib\\site-packages\\pip-8.1.2-py3.4.egg', 'C:\\Users\\Administrator\\PycharmProjects\\laonanhai', 'C:\\Windows\\SYSTEM32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\Python34\\lib\\site-packages', 'C:\\Users\\Administrator\\PycharmProjects\\laonanhai\\shop_store']
最后,通过print(sys.path)可以看到,
C:\Users\Administrator\PycharmProjects\laonanhai\shop_store路径已经加入sys.path
额外收获

在pre_tab.py文件下:
"""
C:\Users\Administrator\PycharmProjects\laonanhai\shop_store\pre_tab.py
"""
print("AA")
竟然,曝错了!!!
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: truncated \UXXXXXXXX escape

后来参考了

http://blog.csdn.net/wlsyn/article/details/49613867原来是文件路径中,反斜杠 \u 报的错,在反斜杠后面再加一个反斜杠转义了就行了,经测试,注释后的代码不报错,去掉注释,也能正常读写文件

随笔补充:关于__import__
obj = __import__("lib.manager")
print(obj) #没有导入manager.py
#<module 'lib' from 'C:\\Users\\Administrator\\PycharmProjects\\laonanhai\\day6_test\\lib\\__init__.py'>
obj.order() #AttributeError: 'module' object has no attribute 'order'

obj1 = __import__("lib.manager", fromlist=True) #表示按路径连接方式导入
print(obj1) #导入manager
#<module 'lib.manager' from 'C:\\Users\\Administrator\\PycharmProjects\\laonanhai\\day6_test\\lib\\manager.py'>
obj1.order() #成功执行lib下的manager.py的order()方法


出处:http://www.cnblogs.com/0zcl

python之路径导入的更多相关文章

  1. python 相对路径导入 与 绝对路径导入

    我的理解: 假设有一个文件夹 app 若 app 下有app/__init__.py文件,则此 app 被视作一个 package,而 app 下的其他文件/文件夹被视作 module 我们知道,pa ...

  2. 关于python项目路径导入自己写的库出错的一点思考

    其实也是在写自己项目的时候遇到的,以前也遇到了但是一直采取的是回避的策略,这次总算弄清楚所以总结一下. 这个项目的顶级目录是medivac,他本身是一个python模块. 熟悉flask的人都知道,在 ...

  3. python 根据路径导入模块

    Import python module NOT on path http://stackoverflow.com/questions/10161568/import-python-module-no ...

  4. python的相对路径导入问题

    用python做项目,如果项目大了,或者想更好的管理程序,总是要使用包.包解决了命名冲突的问题. 今天在使用python的相对路径导入的时候,遇到了不少的问题. 包导入情形: src/    __in ...

  5. 6.python模块(导入,内置,自定义,开源)

    一.模块 1.模块简介 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.这也是使用python标准库的方法. 类似于函数式编程和面向过 ...

  6. [python]关于在python中模块导入问题追加总结

    [背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...

  7. Python模块及其导入

    一.模块 1.模块的定义: 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少, 很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件 ...

  8. Python模块(导入,内置,自定义,开源)

    目录: 模块介绍 自定义模块 内置模块 开源模块 一.模块 1.模块简介 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.这也是使用p ...

  9. 13、python的路径处理

    前言:本文主要介绍python中路径的处理,包括os模块和有关的2个魔法变量. 一.os模块 python里面的os模块有许多方法可以让我们通过代码实现创建,删除和更改目录,具体如下: os.getc ...

随机推荐

  1. ASP.NET MVC中给所有的cshtml页面引用命名空间

    在web.config文件中加入:这样所有需要以下命名空间的页面就不需要再它页面中单独引用这些命名空间了 <system.web.webPages.razor> <host fact ...

  2. PHP的学习--在sublime中使用XDebug(Ubuntu)

    说起来惭愧,自从开始使用Sublime Text之后,再也没有debug过PHP的代码,最近把debug的环境搭建了一下,在这里记录一下. 安装XDebug sudo apt-get install ...

  3. Linux使用lvresize扩展或缩减lv大小

    环境:CentOS 6.7 一.新建并挂载目录 /u01 和 /data 1.创建目录挂节点/u01,/data mkdir -p /{u01,data} 2.创建lv,名称是lv_u01,大小10g ...

  4. Cesium原理篇:3最长的一帧之地形(1)

    前面我们从宏观上分析了Cesium的整体调度以及网格方面的内容,通过前两篇,读者应该可以比较清楚的明白一个Tile是怎么来的吧(如果还不明白全是我的错).接下来,在前两篇的基础上,我们着重讨论一下地形 ...

  5. SFC的OAM管理框架

    1.简介SFC Service Function Chain(SFC):一系列服务功能的顺序组合,主要是针对网络中的数据包/帧分类处理,还包括能够动态排序部署的网络功能并且这些网络功能间拓扑结构独立, ...

  6. WebSocket 介绍(二)-WebSocket API

    这一章介绍如何用WebSocket API来控制协议和创建应用,运用http://websocket.org 提供的现有WebSocket服务器,我们可以收发消息.创建一些简单的WebSocket应用 ...

  7. Gobblin编译支持CDH5.4.0

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 Gobblin的前身是linkedin的Camus,好多人也用过,准备用Gobblin的方式来抽 ...

  8. Linux上的SQL Server的起步

    我们知道,几个星期前,微软发布了在Linux上直接运行的SQL Server第一个公开CTP版本!因此,对我来说,是时候跨界在Linux上安装我的第一个SQL安装,这样的话,我就可以在Linux上折腾 ...

  9. 原生AJAX入门讲解(含实例)

    相对于jQuery.YUI以及其他一些类库的AJAX封装,原生JS的AJAX显得那么的尴尬,兼容性不好,要记很多的方法属性,调用不便捷,代码臃肿...但我还是想说,原生JS才是最根本最底层的知识(虽然 ...

  10. Windows 10 密钥分享

    Windows 10 Technical Preview for Enterprise:KEY:PBHCJ-Q2NYD-2PX34-T2TD6-233PKhttp://technet.microsof ...