最简单直接的办法就是:
直接把要导入的 package 复制到 site-package文件夹下!
或者把 package 所在的路径加到 python 的搜索路径里面!
上面两种应该是最好的办法
在 pycharm 中运行脚本时,相对导入可以直接使用
但是如果系统直接运行python脚本
from .. import XXX
(上一级目录的package)
from . import XXX
(当前工作目录的package)
可能会有
ValueError: attempted relative import beyond top-level package
SystemError: Parent module '' not loaded, cannot perform relative import
这样的错误
产生错误的原因:
没有
__init__.py
文件:相对导入时,package 所对应的文件夹必须被 python解释器 视作 package,
而不是普通文件夹,也就是说文件夹中必须要有__init__.py
文件当前级别的目录中运行了py脚本:该文件夹不能作为主函数的入口(顶层模块)来执行该文件夹中的py文件,想执行的话可以把主函数放在该文件夹的上一级目录中(不过这样似乎不利于脚本的分类整理,如果想把一类的脚本放到一个文件夹下的话,这个文件夹就又成了主函数的入口?所以建议直接用开头的两个方法完成导入)
在"from YY import XX"这样的代码中,无论是XX还是YY,只要被python解释器视作package,就会首先调用该package的init.py文件。如果都是package,则调用顺序是YY,XX