python 不同目录间的模块调用

有时候调用的模块不再同一个目录。直接import 是加载不进来的。默认的加载路径是sys.path中指定的路径。如果要指定加载的目录得需要把这个目录加到sys.path里面。

比如要加载父目录的同级目录下的模块。

当前文件atm.py 要加载的模块settings.py

1、先找到当前文件的绝对路径

import os
print(os.path.abspath(__file__))#abspath 返回文件的绝对路径、__file__文件的相当路径

2、找到父级目录

import os
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#E:\pywww\day04\Atm

3、添加环境变量

import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)#

5、加载模块

from conf import settings
from core import main
settings.main() #main

settings.py code:

def main():
    print(‘main ‘)
时间: 2024-10-05 00:40:47

python 不同目录间的模块调用的相关文章

Python之路-目录规范和不同目录间进行模块调用

目录规范: 预备知识: 要实现不同目录间进行模块调用必须在当前文件夹中创建一个空的__init__.py的文件(pycharm会在创建python package的时候自动创建),有__init__.py的叫包,没有这个文件叫目录 __file__常量获取当前文件的相等路径 os.path.abspath(filepath)>>>将相等路径转换成绝对路径 os.path.dirname(filepath)>>>获取路径名(最上层文件或目录的父文件夹路径) sys.pat

Python 之 不同目录间进行模块调用

不同目录间进行模块调用 main.py 调用 login.py 1.编写main.py主程序文件 #Author Kang import os import sys # print(sys.path) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #程序主目录 # print(BASE_DIR) #/Users/kang/PycharmProjects/不破不立/第二章/20190129/ATM sy

软件目录结构规范以及在不同目录间进行模块调用

目录组织方式: 我想实现,ATM项目里,启动程序bin/atm.py去调用,atm/conf/settings.py和 atm/core/main.py这两个程序,怎么实现呢? 在atm.py里写上代码: 必须用相对路径,使用环境变量__file__可以获得当前文件的相对路径 而Pycharm是从根目录下开始执行的,所以返回的是根路径 而我们需要的绝对路径,所以从上面的相对路径,使用sys模块,得到绝对路径: 我们得到了绝对路径,我们需要向上一级目录. 需要使用os.path.dirname()

python不同目录间模块调用

前置: sys.path是python的搜索模块的路径集. 以下是目录结构: 1.首先同一目录下的模块间调用:b目录下Math_3.py调用Math_4.py 1 import sys 2 print('the path of Math_3 is {}'.format(sys.path)) 3 from Math_4 import Math_4 4 class Math_3: 5 6 def __init__(self, a, b): 7 self.a = a 8 self.b = b 9 10

python3 不同目录下的模块调用

我们新手在写python的时候往往会调用其他目录下的模块来干活(老鸟都知道的),有时会不知道怎么办, 如我们在目录B下的脚本d.py需要调用目录A下的脚本c.py这时该怎么做呢 ? 我们需要用到模块os和sys来把A目录加到环境变量中去就行了: 在脚本d.py import sys,os BASE_PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_PATH) from mod

【Python】Python的urllib、urllib2模块调用“百度翻译”API进行批量自动翻译

1.问题描述 在文本数据处理时,经常回出现文本中各种语言的混杂情况,包括:英文.日语.俄语.法语等,需要将不同语种的语言批量翻译成中文进行处理.可以通过Python直接调用百度提供的翻译API进行批量的翻译. 百度翻译API详细文档见:百度翻译API文档 2.问题解决 开发环境:Linux 将文本中的中文和非中文进行分离,对非中文的部分进行翻译. Python的代码如下:translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys

目录间文件相互调用

#!/usr/bin/env pythonprint('welcome to my atm')print(__file__)#相对路径import osimport sysprint(os.path.abspath(__file__))#绝对路径print(os.path.dirname(os.path.abspath(__file__)))#上级目录print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))#上级目录BA

[转]python3 跨目录模块调用,你真的懂了吗?

小伙伴们,你们有遇到过调用自己写的模块(跨目录模块调用),提示你ImportError:No module named ...的情况,如果有,而且到现在还没有搞明白的,我想说,你今天看对文章了. 这篇文章主要是讲解怎么还原一个出错的场景,然后分析出错原因,一步一步的解决这个问题的思路. 项目结构 代码内容 # model1/student.py def get_name(): return "hting" # model1/new_student.py from student imp

python导入上级目录中的模块

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