Py学习  »  Python

从另一个包Python导入类

HOANG GIANG • 5 年前 • 1572 次点击  

我的源代码目录(命名为 my_dir

my_dir
|
|-- pkg_1
|    |
|    |-- module_1.py
|    |-- module_2.py
|
|-- src.py

module_1.py ,我导入 module_2.py 通过

import module_2

但是当我输入 module_1 在里面 src.py

import module_1

在语句中引发错误 import module_2 模块1.py 好像我的工作目录是 pkg_1 我的导演 .

它怎么能解决这个问题?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55143
 
1572 次点击  
文章 [ 3 ]  |  最新文章 5 年前
GUIMish
Reply   •   1 楼
GUIMish    6 年前

试试这个:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, sys;

# get path to this file.
path_this_file = os.path.dirname(os.path.abspath(__file__));
# add path to import files.
sys.path.insert(0, path_this_file + "/pkg_1");

import module_1, module_2;
zvone
Reply   •   2 楼
zvone    6 年前

这就是误解的原因:

在语句中引发错误 import module_2 在里面 module_1.py 好像我的工作目录是 pkg_1 my_dir .

首先,导入包时,该包中的代码不会在其他工作目录中执行。

Python代码被组织成包和模块。解释器在python路径中搜索包和模块。

我的导演 如果运行 python src.py 包装1 是一个包,而 module_1 module_2 是模块。最简单的进口方式 使用绝对导入:

import pkg_1.module_2

包装1 relative import :

from . import module_2
sahasrara62
Reply   •   3 楼
sahasrara62    6 年前

在里面 module_1.py 导入为 from . import module_2 src.py 将模块1导入为 from pkg_1 import module_1