在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如果找不到包可以在上述目录下寻找。

相关推荐
Lsetea10 分钟前
ACME 报 rate limit:Let‘s Encrypt 限速类型与重试策略
运维·https·证书·ssl·acme
qetfw19 分钟前
Debian 部署 phpMyAdmin:Apache、PHP 与 MariaDB 管理界面配置
linux·debian·php·apache
大模型码小白20 分钟前
ChatGPT 的回答也能被结构化抓取?AI Bot Scraper 对比测评
服务器·开发语言·数据库·人工智能·spring·chatgpt
A黄俊辉A24 分钟前
两分钟上手docker
运维·docker·容器
青瓦梦滋35 分钟前
NAT技术
linux·服务器·网络·网络协议·tcp/ip
啦啦啦啦啦zzzz39 分钟前
自定义日志缓冲区(上)c++20
linux·服务器·c++·网络编程
邪修king43 分钟前
Re: Linux系统篇(十八):进程篇(七): 进程深度解析:从 fork 创建到退出的完整旅程(附写时拷贝原理 + 代码实战)
java·linux·运维
Golden_Chen1 小时前
Win10 WSL安装ubuntu
linux
RobinDevNotes1 小时前
RoCEv2如何扛起大模型训练网络
linux·网络·ai·网络linux
亿朝亿夕2 小时前
linux基础命令
linux