在导入上一个文件夹的包时,会经常发生pycharm不报错,linux服务器却报错无法导入。根据我自身情况,是路径导包问题,pycharm可能会自动添加到环境变量?
python文件包导入时,会搜索一个路径:sys.path (这是一个列表,会按照列表的路径进行搜索)。
因此当需要导入哪些文件,只需要将文件夹导入即可。
以下举例:
os.path.dirname()可以获取当前文件的父目录
os.path.abspath(__file__)可以获取当前文件的绝对路径
因此,导入一下路径的方式为:
project|
demo1|
__init__.py
main.py
demo2|
__init__.py
main2.py
__init__.py
若从main.py导入main2.py
import main2.py是不可行的,因为sys.path中并没有 demo2的路径
以下是添加方案:
Base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(Base_path)即可
不建议直接将绝对路径添加进去,别人用不方便。