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

相关推荐
U盘失踪了2 小时前
python JSONPath 表达式生成器
linux·windows·python
锦鲤飞上天4 小时前
CentOS卸载、安装MySQL8(yum操作)
linux·adb·centos
mortimer4 小时前
一次搞懂 rsync:从入门到解决真实世界中的权限难题
linux·运维·centos
wb1895 小时前
服务器的Mysql 集群技术
linux·运维·服务器·数据库·笔记·mysql·云计算
天上掉下来个程小白6 小时前
Docker-07.Docker基础-数据卷挂载
运维·docker·微服务·容器
whabc1006 小时前
ssh连接VirtualBox中的Ubuntu24.04(win11、putty、NAT 模式)
运维·ssh
热爱生活的五柒7 小时前
服务器突然之间特别卡,什么原因?
运维·服务器
huangyuchi.7 小时前
【Linux系统】详解,进程控制
linux·进程控制·进程创建·进程等待·进程程序替换·退出码·进程终止
zly35007 小时前
Linux(centos)安全狗
linux·运维·服务器
星辰云-8 小时前
Nginx笔记
运维·笔记·nginx