在linux环境下使用命令行运行python项目时包(模块Module)以及文件路径的问题

背景

由于个人一直习惯就是使用绝对路径,所以以前一般比较少碰到标题所示的问题。这次遇到一个项目,其全部使用的是相对路径,然后我在linux环境下运行

powershell 复制代码
python /project/main.py

报错了。

解决办法

首先,/project/main.py是一个绝对路径,所以你进入linux之后,可以在任何工作目录执行上述命令。

但是,如果这个项目里面有代码使用相对路径,例如代码要打开文件file="config/set.yaml",那么就有可能报错。不报错的情况是,你需要在project工作目录执行上述命令。

其次,如果项目文件中导入包是相对路径(这个一般都是),例如假设我们的project目录下有一个包叫做easy_tpp,然后要导入该包下面的Config这个文件,

powershell 复制代码
from easy_tpp import Config

那么如上还是可能会报错,即没有模型名字叫做easy_tpp

powershell 复制代码
no module named "easy_tpp"

这个时候的解决方法是:在main文件开头补上(注意,是最开头):

powershell 复制代码
import sys
sys.path.append("/project")

提醒python如果找不到包可以在上述目录下寻找。

相关推荐
大黄说说1 天前
Go并发双雄:WaitGroup与Channel的抉择与协作
java·服务器·数据库
Cinema KI1 天前
有关Linux文件权限的概述
linux
Agent产品评测局1 天前
企业邮件处理自动化落地,分类回复全流程实现方法 —— 2026企业级智能体选型与落地全景指南丨Agent产品测评局
运维·人工智能·ai·chatgpt·自动化
升职佳兴1 天前
重启 Docker 导致 VMware 虚拟机断网:一次完整的故障排查记录
运维·docker·容器
同聘云1 天前
阿里云国际站服务器高防是什么意思?如何选择高防服务器?
运维·服务器·网络
发发就是发1 天前
顺序锁(Seqlock)与RCU机制:当读写锁遇上性能瓶颈
java·linux·服务器·开发语言·jvm·驱动开发
_Emma_1 天前
【Linux media】Linux Media Driver Framework
linux·服务器·视频
A_QXBlms1 天前
企业微信客户管理自动化:利用API同步客户标签与画像
运维·自动化·企业微信
如来神掌十八式1 天前
nginx基础知识
运维·nginx
网络点点滴1 天前
创建一个简单的web服务器
运维·服务器·前端