在不同的操作系统上,导入模块的路径是否不同?

时间:2019-05-10 20:30:42

标签: python spyder

我在spyder中有一个python项目,无论我身在何处,我都可以使用它,这意味着我可以在一天内打开它并在Mac,Windows和Ubuntu上进行操作。问题是导入模块在Windows上永远无法正常工作。

我的文件系统设置如下:

- /Project
    * Main.py
- /modules
    * Functions.py
    * constants.py
    * otherFunctions.py
- /Data
    * bunch of data files

在Main.py中,我有:

import modules.Functions as gf
import modules.otherFunctions as of
from modules.constants import gas_const_R, Solar_const

在otherFunctions.py里面,我有:

import modules.Functions as gf

在constants.py中,我有:

gas_const_R = 287.04
Solar_const = 1368.0

这一切都可以在Linux和Mac上完美运行,但是Windows不会导入常量,也不会让otherFunctions.py导入Functions.py。

当前工作目录在所有OS上均相同。 Main.py可以导入所有模块,但是在Windows上它们不能相互导入,在Windows上我也无法获取常量。

这是我的间谍设置​​中的问题吗? Windows路径有问题吗? 有没有一种方法可以根据我所使用的操作系统来进行不同的导入?

1 个答案:

答案 0 :(得分:1)

这取决于您的IDE如何执行程序,特别是您的CWD(当前工作目录)是什么。那是相对于(某些)进口的地方。您可以通过运行以下命令检查此目录:

import os
print(os.path.abspath('.')

对于所需的行为,这应打印所有三个目录的父目录。如果没有,则必须更改IDE的设置(对不起,我不知道spyder)。