Mistriter
3/16/2020 - 4:37 AM

CB001 获取当前程序路径,加载自定义模块

CB001 获取当前程序路径,加载自定义模块

# 情景:在使用Linux的Crontab自动运行Python脚本的时候,之前通过相对路径加载自定义
#       模块的方式会失效,因此需要手动加入自定义模块的路径,让系统能够在全局环境
#       下也能找到自定义模块的位置。

import os
import sys
 
# 查看当前系统的 module 路径
print(sys.path)
 

# 方法一:通过环境变量 PYTHONPATH 指定(除非单一大工程,一般不推荐)
#	export PYTHONPATH=module_path
#
# 方法二:编程中直接指定我们的 module 路径到 sys.path 中
# sys.path.append(module_path)

# 不推荐写成固定的,不然发生路径变化后就还得再改,最好写成相对路径的方式
module_path = os.path.dirname(os.path.realpath(__file__))
# 用realpath可以避免被导入路径还是上游脚本的情况,同时也不担心是软连接路径。
# or module_path = os.path.split(os.path.realpath(__file__))[0]
sys.path.append(module_path)