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

相关推荐
鸢尾掠地平31 分钟前
DNS的正向、反向解析的服务配置知识点及实验
运维·服务器·网络
顾安r36 分钟前
11.8 脚本网页 塔防游戏
服务器·前端·javascript·游戏·html
by__csdn1 小时前
nvm命令使用,nvm国内镜像,nvm命令for Linux/Mac
linux·运维·macos
su3171 小时前
rap2部署
linux·运维·服务器
敲不响的键盘1 小时前
Nginx Location匹配与Proxy_pass匹配规则
运维·nginx
wheeldown1 小时前
【Linux】Linux 地址空间 + 页表映射的概念解析
java·linux·jvm
陌路201 小时前
操作系统(11)进程描述与控制--5种IO状态(1)
linux·ubuntu
skywalk81632 小时前
阿里云服务器FreeBSD新系统从登录、配置到升级:从14.1升级到FreeBSD 14.3 Release
linux·服务器·阿里云·freebsd
草莓熊Lotso2 小时前
Linux 基础开发工具入门:软件包管理器的全方位实操指南
linux·运维·服务器·c++·人工智能·网络协议·rpc
Jewel Q2 小时前
PowerShell 和 CMD
运维