我在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路径有问题吗? 有没有一种方法可以根据我所使用的操作系统来进行不同的导入?
答案 0 :(得分:1)
这取决于您的IDE如何执行程序,特别是您的CWD(当前工作目录)是什么。那是相对于(某些)进口的地方。您可以通过运行以下命令检查此目录:
import os
print(os.path.abspath('.')
对于所需的行为,这应打印所有三个目录的父目录。如果没有,则必须更改IDE的设置(对不起,我不知道spyder)。