我正在尝试在崇高文本3中设置一个非常简单的python 2构建系统。
python的默认构建环境有效,但我希望能够通过将项目文件夹添加到PYTHONPATH
来导入项目的顶级模块。
以下是我对构建系统的尝试:
{
"cmd": ["python", "-u", "$file"],
"env":
{
"PYTHONPATH": "$project_path"
},
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
终端弹出:
Traceback (most recent call last):
File "C:\project", line 4, in <module>
from lib.util.utilities import pairwise
ImportError: No module named lib.util.utilities
[Finished in 0.3s]
它没有看到$project_path
文件夹,否则它将能够导入实用程序,因为lib/
是顶级项目文件夹中的文件夹。我该如何解决这个问题?
我在x64 Windows 8.1上
答案 0 :(得分:1)
根据我的测试和a post on Sublime Text's forums,变量不会在env
中展开。
我通过在您的构建系统中运行以下Python代码来找到它:
import os
print(os.environ['PYTHONPATH'])
哪个输出:$project_path
。
使用以下构建系统会起作用,但是每当运行代码时都会产生一个shell产生的开销:
{
"shell_cmd": "export PYTHONPATH=\"$project_path\"; python -u \"$file\"",
"windows":
{
"shell_cmd": "set \"PYTHONPATH=$project_path\" & python -u \"$file\"",
},
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
这适用于OS X和Windows,具有以下设置:
te st
├── lib
│ ├── __init__.py
│ └── util.py
├── src
│ └── te st.py
└── test.sublime-project