bash命令行运行python程序时,经常会提示import包不存在,但实际该包就在本项目上一级目录。

这是因为python依赖home工作目录来定位需要加载的python模块。

python默认当前目录为项目运行根目录,因此需要修改python项目运行的根目录。

这里参考网络资料,整理出3种设置python home工作目录的方法,比如

命令行通过PYTHONPATH变量设置,python程序通过os.chdir()、sys.path.append()设置。

1 环境变量

通过PYTHONPATH环境变量,指定python项目运行的跟目录,后直接跟python脚本。

示例如下

PYTHONPATH=/path/to/your/directory python your_program.py

python将增加在/path/to/your/directory下查询需要load的模块

2 python程序

在python中,则可以通过sys.path 添加根目录,示例如下

import sys

# 添加自定义目录到系统路径
sys.path.append('/path/to/your/home_directory')

采用这种方式后,在运行python脚本时,不需要设置PYTHONPATH环境变量前缀

3 手动切换

之前介绍的设置方法,通过环境比变量或sys.path.add的方式设置工作目录。

这里尝试在程序中或bash终端直接指定。

3.1 chdir

在脚本中使用 os.chdir()直接更改工作目录,示例代码如下。

import os

# 指定home工作目录
os.chdir('/path/to/your/directory')

# 打印工作目录以
print(os.getcwd())

3.2 cd

在运行python程序前,通过cd进入home工作目录,再运行脚本

cd /path/to/your/directory

python your_program.py

reference

---

【Python】执行脚本的时,如何指定运行根目录,而不是指定脚本的父级目录

https://blog.csdn.net/u013948858/article/details/142462208

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐