关于python中模块的import路径

前两天被一个同事问了一个python的问题:

为什么一个目录里的python文件引用不要另一个兄弟目录的python文件,但是这两个目录的父母录运行时是可以引用到了。当时感觉一直是模块和包的机制问题,回来翻了一下书,发现是引用路径的问题,记录一下。

在python中我们import模块时,系统会在python的引用路径下去查找这个模块文件, 这个引用路径是在编译或者安装的时候指定的,可以在两个地方进行修改:

  • shell的PYTHONPATH环境变量,系统会在这个变量的目录中进行查找。
  • 在python程序中可以通过sys.path列表来进行修改

被别人问到,才发现我python是入门级别的,要多学习一下。以前自己使用时,都是只管用,没有想过后面的底层机制,不求甚解,还是要多总结一下。

时间: 2024-10-25 04:37:50

关于python中模块的import路径的相关文章

python中from module import * 的一个陷阱

from module import *把module中的成员全部导到了当前的global namespace,访问起来就比较方便了.当然,python style一般不建议这么做,因为可能引起name conflict. 但还有另外一个问题 - 你以为你修改了某个变量,其实,被from module import *后的那个并没有被更新,非常危险,因为程序有可能还可以正常运行, 只不过结果错了,到了production才被发现就比较惨了. 举个例子: 你定义了一些变量在base模块中: # r

查看python中模块的所有方法

查看python中模块的所有方法 安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交互解释器中使用help()查看 在交互式解释器中输入>>> help("modules")即可,效果跟在命令行下输入$ pydoc modules是一样的 三.在python交互的解释器下导入sys模块查看 # python的sys模块也是可以用来查看模块信息的     >

Python中模块的发布与安装

模块(Module) Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块.通俗的来说,模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块. 导入模块 import: 引入具体模块,可以一次性引入多个模块,使用逗号隔开即可 eg:import modlue1,module2,module3,.....moduleN ,   使用模块中的函

python 中 模块,包, 与常用模块

一 模块 模块:就是一组功能的集合体, 我们的程序可以直接导入模块来复用模块里的功能 导入方式 一般为 : import 模块名 在python中, 模块一般分为四个通用类别 1使用python编写.py 文件 2.已被编译为共享库或DLL 的c 或c++扩展 3把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包) 4.使用c编写并链接到python解释器的内置模块 使用模块的优点: 1.从文件级别组织程序, 更方便管理 2.拿来主义, 提升开发效率

python中模块的引用

一. 模块的定义 定义 python模块(Module),是一个python文件,以.py结尾,包含了python对象定义和python语句.模块让你能够有逻辑地组织你的python代码段,把相关的代码分配到一个模块里能让你的代码更好用,更易懂.模块能定义函数,类和变量,模块里也能包含可执行的代码 目的 提高复用性 用法 1) import 模块名 注意:如果模块名里有个类,必须实例化类才能调用类里的方法:模块名.类名().方法 2) from 模块名 import 对应的类或者函数(一般是调用

python中模块和包的概念

1.模块 一个.py文件就是一个模块.这个文件的名字是:模块名.py.由此可见在python中,文件名和模块名的差别只是有没有后缀.有后缀是文件名,没有后缀是模块名. 每个文件(每个模块)都是一个独立的名称空间,也就是说可以在两个(多个)文件中出现同名的函数. import,from.....import...两种导入的区别: 1.import 按模块区分拥有独立的命名空间,要是想使用模块中的函数需要使用      模块名.函数名       的方式来使用. 可以使用import.....as.

python引入模块时import与from ... import的区别(转)

import datetime是引入整个datetime包,如果使用datetime包中的datetime类,需要加上模块名的限定. 1 import datetime 2 3 print datetime.datetime.now() 如果不加模块名限定会出现错误:TypeError: 'module' object is not callable \ AttributeError: 'module' object has no attribute 'now'     from datetim

python引入模块时import与from ... import的区别

import datetime是引入整个datetime包,如果使用datetime包中的datetime类,需要加上模块名的限定. 1 import datetime 2 3 print datetime.datetime.now() 如果不加模块名限定会出现错误:TypeError: 'module' object is not callable \ AttributeError: 'module' object has no attribute 'now'     from datetim

Python中模块使用及面向对象介绍

1.模块使用 模块: 模块式pyth1.on组织代码的基本方式 一个python脚本可以单独运行,也可以导入另一个脚本中运行,当脚本被导入运行时,我们将其称为模块(module) 所有的点p为文件都可以作为一个模块导入 模块名与脚本的文件名相同,例如我们编写了一个名为hello.pv的脚本则可以在另一个脚本中用import hello.py来导入它 包: python的模块可以按目录组织为包 创建一个包的步骤: 创建一个名字为包名字的目录,在该目录下创建一个__init__.py文件,根据需要在