Python引入同一目录下的py文件
判断当前目录是否已经被加入到PYTHONPATH环境变量中,
(1)如果是命令行,系统会默认当前目录已经在环境变量中;
(2) 如果是pycharm,Pycharm在同目录下import 文件,pycharm 会有波浪线,提示错误,但是可以运行
如果是pycharm 中运行
如果是pycharm,Pycharm在同目录下import 文件,pycharm 会有波浪线,提示错误,但是可以运行
原因:Pycharm不会将当前文件目录自动加入自己的Sources Root
解决方案:右键Mark_Directory as–>Sources Root,将当前工作的文件夹加入Sources Root就可以了
命令行中运行python,找不到 导入的包
命令行中运行python,导入其他目录包时报找不到包的错误,原因是命令行中运行只会搜索当前目录下的包。
import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
PathProject = os.path.split(rootPath)[0]
sys.path.append(rootPath)
sys.path.append(PathProject)
所以需要:添加待导入包的文件路径到sys.path
分析:python中的 init.py的作用
(1) 标志该目录是一个python的模块包(module package):如果是使用python相关的IDE来进行开发,如果目录中存在该文件,则会被识别为module package
(2) init.py会配置模块的初始操作
(3) 简化模块操作,在命令行运行时,引入外层文件夹,会执行__init__.py中的代码
同时__init__.py可以被就修改为__all__ = [‘subpackage_1’, ‘subpackage_2’]
该例子中的导入等价于
from mypackage import subpackage_1, subpackage_2