导航:首页 > 编程语言 > python导入上级目录模块

python导入上级目录模块

发布时间:2022-05-11 14:55:00

‘壹’ python导入模块的方法有哪些

方法一
import modname
模块是指一个可以交互使用,或者从另一Python 程序访问的代码段。只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。模块可以通过这种方法来使用其它模块的功能。
用import语句导入模块,就在当前的名称空间(namespace)建立了一个到该模块的引用.这种引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包含模块的名字。所以不能只使用 funcname,而应该使用 modname.funcname

方法二
from modname import funcname
from modname import fa, fb, fc
或者
from modname import *
与第1种方法的区别:funcname 被直接导入到本地名字空间去了,所以它可以直接使用,而不需要加上模块名的限定* 表示,该模块的所有公共对象(public objects)都被导入到 当前的名称空间,也就是任何只要不是以”_”开始的东西都会被导入。
modname没有被定义,所以modname.funcname这种方式不起作用。并且,如果funcname如果已经被定义,它会被新版本(该导入模块中的版本)所替代。如果funcname被改成指向其他对象,modname不能不会觉察到。
建议:
1)如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from mole import
2)如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from mole import
3)如果模块包含的属性和方法与你的某个模块同名,你必须使用import mole来避免名字冲突
4)尽量少用 from mole import * ,因为判定一个特殊的函数或属性是从哪来的有些困难,并且会造成调试和重构都更困难。

方法三
内建函数__import__()
除了前面两种使用import关键字的方法以外,我们还可以使用内建函数 __import__() 来导入 mole。两者的区别是,import 后面跟的必须是一个类型(type),而__import__() 的参数是一个字符串,这个字符串可能来自配置文件,也可能是某个表达式计算结果。例如:
mymole = __import__ (’mole_name’)
附注:
1)模块的内容都放在一个模块文件中,如 mymole 的内容应该放在PYTHONPATH 目录下的一个mymole.py中,C实现的除外
2)包可以将几个模块名称空间组织起来, 如A.b 就表示在包A中的一个子模块b
可以单独导入某一个子模块,如Python文档中给出的例子
import sound.effects.echo
这样必须使用全称对里面的对象进行引用,如
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
还可以使用下面的语句来加载echo子模块
from Sound.Effects import echo
它在没有包前缀的情况下也可以使用, 所以它可以如下方式调用:
echo.echofilter(input, output, delay=0.7, atten=4)
不主张从一个包或模块中用import * 导入所有模块,因为这样的通常会导致可读性很差。
from Package import specific_submole的用法并没有错,实际上这还是推荐的用法,除非导入的模块需要使用其它包中的同名子模块(the importing mole needs to use submoles with the same name from different packages).
综上所述,一般情况应该使用import , 但有几个例外
1)mole文档告诉你要用from-import的
2)导入一个包组件。需要一个包里面的某个子模块,一般用from A.b import c比import A.b.c 更方便 且不会冒混淆的危险.

‘贰’ python 怎么引入上上级目录的文件

以前在远标了解过用 os 模块,上一级目录是两个点。
所以可以用这样的方法,比如以下两个用法:
import os
dirs = os.path.join( os.path.dirname(__file__),'../..') #上上级文件目录名
os.sys.path.append(os.path.join( os.path.dirname(__file__), '../..')) #将上上级目录加载到python的环境变量中。

‘叁’ python 怎样添加模块加载路径

这里主要介绍第二种方法:通过.ph文件进行设置,好处是可以将路径设为永久路径

在Python的安装目录下,找到Libsite-packages文件夹,在该文件夹下新建一个以.pth为后缀名的文件,编辑文件,内容为要添加的库路径。(我的文件名命名为setpath.pth)。添加路径示例:文件内容写入要引用的库路径

步骤1:建立文件,可以首先建立一个文本文档,写下路径如D:\Python\mulib。我这里新建的文件路径的文件夹命名为“mulib”

步骤3:将保存好的文件放在Python的site-packages文件夹中就完成了。

‘肆’ python 怎么引入上上级目录的文件

python导入同级别模块很方便:
import xxx
要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件
from dirname import xxx
要导入上级目录,可以使用sys.path:
首先sys.path的作用是:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块
所以改变思路,直接把上级目录加到sys.path里:sys.path.append('../')
from fatherdirname import xxx

‘伍’ python为什么不能导入当前目录模块

目录?
加个__init__.py文件

‘陆’ 如何在python3中正确导入同一目录下的模块

因为要absolute_import,这样import webchat_sdk.basic应该没问题了。

在 Python 2 里面可以使用 import foo来导入相同目录包下的模块foo,在 Python 3 里面就是导入的项目根目录(最上层有__init__.py的目录)包foo。 也就是说 Python 3 默认就是绝对导入的,import .foo只是相对于绝对导入来说的,并不是相对导入。

‘柒’ 在python中如何导入两个不同目录下自定义的模块呢

1
2

import sys
print sys.path

上面的代码会给出所有可用的python路径,你把.py文件放到这些路径下面就可以在其他文件里导入它了。
另外一个特殊的路径就是当前路径,比如你在一个文件夹test下新建两个.py文件,分别为123.py 和456.py ,那么你可以在123.py写:

1

import 456

就可以导入456.py了。

python的模块都是.py文件,提示invaild syntax 是说语法错误。如果你用的是python3,那你的print就写错了。python2和3的print 区别如下。

1
2

print 'hello world' #python2
print('hello world') #python3

‘捌’ python导入子目录的子目录的模块,提示找不到

其实你的描述不是很清楚 子目录是绑定域名的么 通过什么域名来访问? 因为这个程序的数据库连接用的地址最前面加了/,是相对于根目录而言的所以如果是http://域名/子目录 来访问的话 就更改为Const ACCESSPATH="/子目录/######/shotan.mdb" '数据库路径
Const BACKACCESSPATH="/子目录/######/#shotan.mdb" '备份数据库路径 或者另外一个方法就是用父路径来表示,那就看你的conn.asp相对于网站首页的位置如果与首页就是当前这个网站的根目录相同文件夹,就去掉开始的/,改成Const ACCESSPATH="######/shotan.mdb" '数据库路径
Const BACKACCESSPATH="######/#shotan.mdb" '备份数据库路径 如果conn.asp在某个文件夹里,比如include文件夹,就加个父路径../,改成Const ACCESSPATH="../######/shotan.mdb" '数据库路径
Const BACKACCESSPATH="../######/#shotan.mdb" '备份数据库路径 后面这种方法比较适合于把网站放在任何地方 然后其他的比如图片,flash,css的连接地址也如同数据库一样修改

‘玖’ 如何导入python中的模块

定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何此类文件都会被认为是python模块。
比如说,下面的代码输入到一个文件中,就可以看作是一个模块:
def printme(var): print varif __name__ == '__main__': printme(1)

假设说输入到a.py中,那么import a就可以把这个模块导入。
然后可执行a.printme(3),屏幕即可打印出3:
>>> a.printme(3)3>>>

一个模块顶层定义的变量,会自动变成模块的属性。例如:
data=[1,2,3]def printme(var): print varif __name__ == '__main__': printme(1)

data变量就是模块的一个属性。其实printme也是一个属性,只不过是一个函数罢了。
引入模块示例如下:(假定此时data=[1,2,3]未定义)

>>> import a>>> a.data Traceback (most recent call last): File "<pyshell#1>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>> reload(a)<mole 'a' from 'C:/py\a.pyc'>>>> a.data Traceback (most recent call last): File "<pyshell#3>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>>

从上述提示可以看出data属性未定义,此时再在a.py文件中定义data=[1,2,3],重新加载a模块,并输出data属性:
>>> reload(a)<mole 'a' from 'C:/py\a.py'>>>> a.data[1, 2, 3]>>>

这里的reload函数可以重新加载一个模块。如果在模块代码中更改了,那么需要重新加载。
上面a.data,就是访问模块中的属性。
上面的例子是导入一个文件作为一个模块。
其实python的模块导入还有更丰富的内容。
除了模块名之外,python也可以导入指定目录路径。python代码的目录就称为包。因此,这类导入就称为包导入。事实上,包导入是把计算机上的目录变成python的一个命名空间。而属性就是目录中包含的子目录或者是模块文件。
看下面例子:
在我的桌面上有一个aa文件夹,里面有bb文件夹,bb里面有a.py这个文件。
那么在aa和bb文件夹中分别放置一个__init__.py,之后,在命令行中import aa.bb.a,就可以导入模块a了。

‘拾’ 在python 中如何 import 父目录中的模块

在 python 中,如果当前目录中存在有 __init__.py 文件,则表示该目录为一个包(package),在包中,引用同级目录或子目录中的其它模块非常简单,直接使用 import 语句即可,并且如果是同级目录,没有 __init__.py 文件亦可。但如何导入父目录中的其它模块呢,在 python 的世界里,没有像 C 中直接使用 ../ 来退级的方式,像 import ../test 这样的语句是不合法的。其它,如果理工清楚了 import 语句的工作原理,就好办了,import 工作时,就是根据模块名,从 sys.path 所包含的路径中寻找对应的模块名,如果能找到,则将其它导入到当前运行环境,根据这个规则,有如下两种方式解决上述问题:
1、修改 sys.path 法:在导入父目录中的模块前,先修改 sys.path 的值,如导入父目录中的 test 模块,导入方法如下:import syssys.path.insert(0, "..") ;# or�0�2 sys.path.append("..")
2、将包的根目录以外链的形式加入到 sys.path 中,即在 {PYTHON-HOME}\lib\site-packages 中新建一个 .pth 文件,文件内容为包根路径,假设包的根目录为 d:/py/mytest/,则可以在 {PYTHON-HOME}\lib\site-packages 目录下建一个 mytest.pth 的文件,内容为 d:/py/mytest。完成上述步骤后,则可以在任何模块中像导入已安装的系统包一样导入 mytest 包或是该包下的所有模块,如 import mytest。注意,由于 python 的版本不同,在 v2.5 版以后,需要在 __init__.py 文件中显示地使用 __all__ 变量指明当前包下有哪些模块,要不此包是无法正常导入和工作地

阅读全文

与python导入上级目录模块相关的资料

热点内容
新科源码 浏览:659
如何判断服务器有没有带宽 浏览:41
天正建筑批量删除命令 浏览:94
cad最下面的一排命令都什么意思 浏览:456
pythonimportcpp 浏览:850
W10的系统怎么给U盘加密 浏览:370
华为手机代码编程教学入门 浏览:762
和彩云没会员怎样解压 浏览:634
androidimageview保存 浏览:387
新买店铺什么服务器 浏览:883
文件夹能直接刻录吗 浏览:493
androidxmpp删除好友 浏览:969
javac哪个前景好 浏览:428
中华英才网app为什么不能搜索了 浏览:660
服务器域名是什么意思 浏览:52
Linux导出mysql命令 浏览:159
无诈建邺是什么app 浏览:228
python中的双色球 浏览:168
python解释器里如何换行 浏览:413
python编写格式 浏览:577