原因:因代码转移时项目路径发生了变化,导致解释器无法找到对应路径,是的程序无法正常执行
需求:
1.我希望代码能在不同的电脑下,不必修改源代码就能正常执行(所需模块已安装的前提下)
2.我希望代码在命令行下执行与在pycharm下执行结果一致
3.我希望我写的代码在windows与Linux下执行结果一致(由于我从事测试工作,目前还没有这样的需求,所以没怎么研究过,暂时放过它)
实现代码如下:
import sys
import os
#1.获得项目的绝对路径,必须经你验证绝对路径的正确性,sys,os必须先导入
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#2.添加项目的绝对路径,使解释器能找到这个路径
sys.path.append(BASE_DIR)
#3.可以调用模块了,这样就实现了在任何环境下,执行结果一致了
from module import main
print(BASE_DIR)#这是验证项目绝对路径的打印,最后是要去掉的
注意事项:
所有导入自定义模块尽量从项目下的第一层目录开始导入,因直接使用相对路径(兄弟路劲)时,在跨目录的情况下会出现找不到路径的情况