背景
由于个人一直习惯就是使用绝对路径,所以以前一般比较少碰到标题所示的问题。这次遇到一个项目,其全部使用的是相对路径,然后我在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如果找不到包可以在上述目录下寻找。